/// <summary>
/// 接收数据
/// </summary>
private void OnReceive(object ob)
{
var key = ClientSocket.LocalEndPoint as IPEndPoint;
var remote = ClientSocket.RemoteEndPoint as IPEndPoint;
while (true)
{
try
{
if (ClientSocket == null || ClientSocket.Connected == false) //断开
{
CloseSocket();
return;
}
if (ClientSocket.Poll(1000, SelectMode.SelectRead)) //断开
{
CloseSocket();
return;
}
var receiveBuffer = new byte[1024];
// 接收服务端消息
var receiveLength = ClientSocket.Receive(receiveBuffer);
if (receiveLength != 0)
{
string msg = Encoding.UTF8.GetString(receiveBuffer, 0, receiveLength);
WriteLog(string.Format("客户端信息——{0}:{1,-5}接受服务器消息{2}", remote.Address, remote.Port, msg));
EvtReceiveData(msg);
}
}
catch (Exception exception)
{
WriteLog("客户端信息——" + exception.Message);
Thread.Sleep(100);
}
}
}