C#SOCKET服务器的问题
调用: IPEndPoint local = new IPEndPoint("127.0.0.1", 8050);
serverListener = new TcpListener(local);
MessageBox.Show("开始了");
serverListener.Start();
thListen = new Thread(new ThreadStart(ServerListen));
thListen.Start();
函数
private void ServerListen()
{
while (true)
{
tcpClient = serverListener.AcceptTcpClient();
int a = 0;
byte[] buffer = new byte[1024];
NetworkStream stream = tcpClient.GetStream();
try
{
a = stream.Read(buffer, 0, 1024);
string temp = "", message = "";
if (a > 0)
{
temp = System.Text.Encoding.ASCII.GetString(buffer, 0, a);
message += temp;
message = Encoding.ASCII.GetString(buffer, 0, a);
MessageBox.Show("接收到" + message);
}
else
{
//tcpClient.Close();
MessageBox.Show("断开");
}
//stream.Close();//这个如果使用的话,服务器一接到数据,客户端就会被关掉
}
catch (Exception ex)
{
//TODO:接收数据线程异常处理
MessageBox.Show(ex.Message);
}
}
}
经过我多次。。无数次实验后发现
当tcpClient = serverListener.AcceptTcpClient();在while里面时,服务器可以接收(处理)同一客户端发送的多个请求
当tcpClient = serverListener.AcceptTcpClient();在while外面时,服务器可以接收(处理)多一客户端发送的一个请求
哪位大大能不能帮帮我改看看,使其可以接收(处理)多一客户端发送的多个请求,本人新人,所以呢,希望各位大大给意见时不要随口说说,最好能帮改下,谢谢了