问题描述
- TCPListener与TCPClient连接的问题
-
我要写一个TCP连接的小程序,想实现多个客户端连接服务端的功能。一个客户端与服务端建立连接后发送数据,服务端从流中读取数据,不断连接,然后等待客户端继续发送数据。但是在服务端读数据的程序开的线程中出现了,循环执行完以后不执行后面的代码的问题,谁知道是什么情况。
//client线程中调用的方法 读取流中数据
private void HandleClientComm(Object o) {
string data = null;
byte[] myByte = new byte[256];
TcpClient client = (TcpClient)o;
NetworkStream stream = client.GetStream();
int i;
string now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
while ((i = stream.Read(myByte, 0, myByte.Length)) != 0)
{
data += System.Text.Encoding.ASCII.GetString(myByte, 0, i - 1);
}
this.Dispatcher.BeginInvoke(new Action(delegate()
{
this.testThread.Text = now + " : " + data;
}));
}
解决方案
Socket的三个功能类TCPClient、TCPListener 和 UDPClient (转)
解决方案二:
一个客户端与服务器连接后,就会有一个线程被创建的。
建议你查一下客户连接到服务器的过程,即服务的监听到客户端连接后做了哪些操作。
时间: 2024-12-31 23:18:06