大家好,请教一个问题。我现在再写一个cs架构的系统。具体情况是服务器有一个线程监听Socket,一个线程发送。
监听的线程接收到消息后不会回复,只是把消息存到队列,代码如下:
while (_receiving)
{
byte[] buffer=new byte[1024*1024];
Socket client = _reciever.Accept();
client.Receive(buffer);
IPEndPoint clientEndPoint = (IPEndPoint)client.RemoteEndPoint;
string senderIP = clientEndPoint.Address.ToString();
int senderPort = clientEndPoint.Port;
this.DLGMSGRecieved(buffer); //委托,将buffer添加到队列
client.Shutdown(SocketShutdown.Both);
client.Close();
client.Dispose();
}
现在的问题是,我用一个客户端发送消息至该socket服务器,第一次发送没问题,可再次发送会出现:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。191.1.7.108:55332的错误(55332是服务器socket的端口号)。
客户端发送代码:
int p=0;
do
{
Random r = new Random(5000);
p =