tcp socket:"远程主机"强制关闭现有连接。 C#

时间:2014-12-10 03:09:24

标签: c# .net sockets serversocket asyncsocket

我为gps跟踪器创建了一个c#async tcp服务器,现在,我在日志中收到了很多这样的消息,也许是我的代码。

例外情况是:远程主机强行关闭现有连接

private void ReceiveCallback(IAsyncResult ar)
    {
        log = LogManager.Instance;

        AsyncStateObject state = (AsyncStateObject)ar.AsyncState;           

        try
        {
            Socket client = state.client.clientSocket;

            int read = client.EndReceive(ar);                

            if (read > 0)
            {
                if (DataReceived != null)
                {
                    byte[] data = null;
                    data = TrimEnd(state.dataBuffer);
                    log.Write(LogManager.LogType.DataTransfer, TAG, "[" + endPoint.Address.ToString() + ":" + server.port.ToString() + "] <- " + BitConverter.ToString(data).Replace("-", ""));
                    DataReceived(this, data, read);                        
                }

                SocketError err;

                clientSocket.BeginReceive(state.dataBuffer, 0, 300, SocketFlags.None, out err, ReceiveCallback, state);
            }
            else
            {
                if (Disconnected != null)
                {
                    Disconnected(this);
                }
            }
        }
        catch (Exception e)
        {
            log.Write(LogManager.LogType.AppError,TAG, "<ReceiveCallback>: " + e.Message);
        }
    }

0 个答案:

没有答案