当客户端关闭时,客户端报错服务器 if (bytesRead > 0)
{
// 有数据,存储.
string revStr = Encoding.Default.GetString(state.buffer, 0, bytesRead);
UntieData(revStr, state);//解包
}
else
{
state.workSocket.Shutdown(SocketShutdown.Both);
state.workSocket.Close();
}
客户端
关闭代码
m_ClientSocket.Shutdown(SocketShutdown.Both);
m_ClientSocket.Close();
try
{
// 从输入参数异步state对象中获取state和socket对象
state = (StateObject)ar.AsyncState;
Socket client = state.workSocket;
//从远程设备读取数据
int bytesRead = client.EndReceive(ar);//运行到这里这里报错
if (bytesRead > 0)
{
// 有数据,存储.
string revStr = Encoding.Default.GetString(state.buffer, 0, bytesRead);
UntieData(revStr, state);//解包
}
else
{
TraceFileClass.TraceFile(client.RemoteEndPoint.ToString() + "日志服务器关闭连接");
LinkOk = false;
}
}
catch (Exception ex)
{
TraceFileClass.TraceFile(ex.Message);
}
{
// 有数据,存储.
string revStr = Encoding.Default.GetString(state.buffer, 0, bytesRead);
UntieData(revStr, state);//解包
}
else
{
state.workSocket.Shutdown(SocketShutdown.Both);
state.workSocket.Close();
}
客户端
关闭代码
m_ClientSocket.Shutdown(SocketShutdown.Both);
m_ClientSocket.Close();
try
{
// 从输入参数异步state对象中获取state和socket对象
state = (StateObject)ar.AsyncState;
Socket client = state.workSocket;
//从远程设备读取数据
int bytesRead = client.EndReceive(ar);//运行到这里这里报错
if (bytesRead > 0)
{
// 有数据,存储.
string revStr = Encoding.Default.GetString(state.buffer, 0, bytesRead);
UntieData(revStr, state);//解包
}
else
{
TraceFileClass.TraceFile(client.RemoteEndPoint.ToString() + "日志服务器关闭连接");
LinkOk = false;
}
}
catch (Exception ex)
{
TraceFileClass.TraceFile(ex.Message);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货