客户端:
1.创建负责通信的Socket
Socket socketSend;//创建为非局部的
socketSend = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocoType.Tcp);
2.连接服务器
//创建IPAddress对象
IPAddress ip=IPAddress.Parse(txtSever.Text);//将IP地址字符串转换为IPAddress对象
IPEndPoint point =new IPEndPoint(ip,Convert.ToInt32(txtPort.Text));//txtPort.Text中的字符串是服务器的端口号
//建立与服务器的连接
socketSend.Connect(point);
ShowMsg("连接成功");
3.创建一个新线程执行消息接收
Thread th =new Thread(Receive);
th.IsBackground =true;
th.Start();
//接收消息的方法
void Receive()
{
while(true)
{
try
{
byte[] buffer =new byte[1024*1024*3];
int r=socketSend.Receive(buffer);
if(r==0) break;
string str =Encoding.UTF8.GetString(buffer,0,r);
ShowMsg(socketSend.RemoteEndPoint +":"+str);
}
catch{}
}
}
//显示消息的方法
void ShowMsg(string str)
{
txtLog.AppendText(str+"\r\n");
}
//客户端给服务器发送消息
byte[] buffer=Encoding.UTF8.GetBytes(txtMsg.Text.Trim());
socketSend.Send(buffer);
备注: 通过 Control.CheckForIllegalCrossThreadCalls =false;
设置窗体在加载的时候取消跨线程的检查