try
{
while (true)
{
//接收数据
byte[] getbytes = new byte[1024 * 1024 * 2];
string sendIp = libconnect.Text;
int maslenth = soc.Receive(getbytes);
//此时是将容器里的数据全都转换掉后面加参数以获得传入的数据而不是容器里面的东西一起转换
string masrecive = System.Text.Encoding.Default.GetString(getbytes, 0, maslenth);
showMas("接收数据:" + masrecive);
}
}
catch (Exception ex)
{
showMas(ex.Message);显示错误信息
dicmas.Remove(soc.RemoteEndPoint.ToString());移除集合中的异常连接
dicthred.Remove(soc.RemoteEndPoint.ToString());移除异常连接的线程
libconnect.Items.Remove(soc.RemoteEndPoint.ToString());移除服务器端断开连接的地址
return;
}当客户端断开时,接收消息的方法就会抛出异常所以用try catch处理一下ok了。
|