资源简介
c#基于TCP协议的Socket通信完整实例(实现多人聊天室),通过C#winform实现多人聊天,同时服务器可以向指定客户端发送消息。非常实用哦!

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
namespace Client
{
public partial class MainForm : Form
{
private IPEndPoint ServerInfo;
private Socket ClientSocket;
//信息接收缓存
private Byte[] MsgBuffer;
//信息发送存储
private Byte[] MsgSend;
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender EventArgs e)
{
//this.CmdSend.Enabled = false;
//this.CmdExit.Enabled = false;
//定义一个IPV4,TCP模式的Socket
ClientSocket = new Socket(AddressFamily.InterNetwork SocketType.Stream ProtocolType.Tcp);
MsgBuffer = new Byte[65535];
MsgSend = new Byte[65535];
//允许子线程刷新数据
CheckForIllegalCrossThreadCalls = false;
UserName.Text = Environment.MachineName;
ServerIP.Text = “127.0.0.1“;
}
private void CmdEnter_Click(object sender EventArgs e)
{
//服务端IP和端口信息设定这里的IP可以是127.0.0.1,可以是本机局域网IP,也可以是本机网络IP
ServerInfo = new IPEndPoint(IPAddress.Parse(this.ServerIP.Text) Convert.ToInt32(8008));
try
{
//客户端连接服务端指定IP端口,Sockket
ClientSocket.Connect(ServerInfo);
//将用户登录信息发送至服务器,由此可以让其他客户端获知
ClientSocket.Send(Encoding.Unicode.GetBytes(“用户: “ + this.UserName.Text + “ 进入系统!“));
//开始从连接的Socket异步读取数据。接收来自服务器,其他客户端转发来的信息
//AsyncCallback引用在异步操作完成时调用的回调方法
ClientSocket.BeginReceive(MsgBuffer 0 MsgBuffer.Length SocketFlags.None new AsyncCallback(ReceiveCallBack) null);
this.SysMsg.Text = “登录服务器成功!“;
this.CmdSend.Enabled = true;
this.CmdEnter.Enabled = false;
this.CmdExit.Enabled = true;
}
catch
{
MessageBox.Show(“登录服务器失败,请确认服务器是否正常工作!“);
}
}
private void ReceiveCallBack(IAsyncResult AR)
{
try
{
//结束挂起的异步读取,返回接收到的字节数。 AR,它存储此异步操作的状态信息以及所有用户定义数据
int REnd = ClientSocket.EndReceive(AR);
lock (this.RecieveMsg)
{
this.RecieveMsg.AppendText(Encoding.Unicode.GetString(MsgBuffer 0 REnd) + “\n“);
}
ClientSocket.BeginReceive(MsgBuffer 0 MsgBuffer.Length 0 new AsyncCallback(ReceiveCallBack) null);
}
catch
{
MessageBox.Show(“已经与服务器断开连接!“);
this.Close();
}
}
private void CmdExit_Click(object sender EventArgs
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13824 2011-08-25 10:29 Server\Server\bin\Debug\Server.exe
文件 24064 2011-08-25 10:29 Server\Server\bin\Debug\Server.pdb
文件 11608 2011-08-25 10:30 Server\Server\bin\Debug\Server.vshost.exe
文件 490 2010-03-17 22:39 Server\Server\bin\Debug\Server.vshost.exe.manifest
文件 5658 2011-08-25 10:29 Server\Server\MainForm.cs
文件 11358 2011-08-25 10:19 Server\Server\MainForm.Designer.cs
文件 5817 2011-08-25 10:19 Server\Server\MainForm.resx
文件 5271 2011-08-25 10:29 Server\Server\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 360 2011-08-25 10:22 Server\Server\obj\x86\Debug\GenerateResource-ResGen.read.1.tlog
文件 498 2011-08-25 10:22 Server\Server\obj\x86\Debug\GenerateResource-ResGen.write.1.tlog
文件 591 2011-08-25 10:30 Server\Server\obj\x86\Debug\Server.csproj.FileListAbsolute.txt
文件 13824 2011-08-25 10:29 Server\Server\obj\x86\Debug\Server.exe
文件 180 2011-08-25 10:22 Server\Server\obj\x86\Debug\Server.MainForm.resources
文件 24064 2011-08-25 10:29 Server\Server\obj\x86\Debug\Server.pdb
文件 180 2011-08-25 10:10 Server\Server\obj\x86\Debug\Server.Properties.Resources.resources
文件 470 2011-08-24 23:11 Server\Server\Program.cs
文件 1344 2011-08-24 23:11 Server\Server\Properties\AssemblyInfo.cs
文件 2862 2011-08-24 23:11 Server\Server\Properties\Resources.Designer.cs
文件 5612 2011-08-24 23:11 Server\Server\Properties\Resources.resx
文件 1091 2011-08-24 23:11 Server\Server\Properties\Settings.Designer.cs
文件 249 2011-08-24 23:11 Server\Server\Properties\Settings.settings
文件 3434 2011-08-24 23:12 Server\Server\Server.csproj
文件 860 2011-08-24 23:11 Server\Server.sln
..A..H. 15872 2011-08-25 10:31 Server\Server.suo
文件 12800 2011-08-25 10:29 Client\Client\bin\Debug\Client.exe
文件 26112 2011-08-25 10:29 Client\Client\bin\Debug\Client.pdb
文件 11600 2011-08-25 10:30 Client\Client\bin\Debug\Client.vshost.exe
文件 490 2010-03-17 22:39 Client\Client\bin\Debug\Client.vshost.exe.manifest
文件 3686 2011-08-12 11:05 Client\Client\Client.csproj
文件 4628 2011-08-25 10:29 Client\Client\MainForm.cs
............此处省略43个文件信息
相关资源
- C# Socket Server Client 通讯应用 完整的服
- C#TCP通信协议
- C#TCP 通信(TCP发送16进制)
- C# Socket Tcp文件传输和文字聊天系统
- 用WPF开发的多人聊天室 语言C#
- C# TCP通讯组件源代码
- C# TcpListener 例程(源码)
- C# Socket TCP通信
- c#实现Modbus tcp客户端
- unity+Socket+KCP+Protobuf的Unity局域网联机
- c#与西门子s7-200 smart 通讯 S7TCPDLL.dll
- C# Modbus TCP通讯(S7200PLC)
- NET CORE 下实现WEB SOCKET通信
- UDP实现简单的聊天室
- 使用Socket发送数据
- SignalR在线聊天(websocket)
- Socket获取扫码枪扫码的数据
- 服务器和客户端(TCP发送消息、发送
- TCP通信(支持发送文本和图片文件)
- Socket聊天室(客户端与服务端相互通
- modbus tcp 调试
- socket服务端
- socket通讯实例(入门级)58873
- C#多线程以及Socket通讯
- 大文件Socket 传输 客户端和服务端
- TcpClient C#2010读取PLC
- tcp和udp(Mina.net)
- Tcp/ip socket 服务器/客户端
- TCP/IP通讯 (附服务端以及客户端)
- 简单tcp 通讯网口工具客户端
评论
共有 条评论