如何检测断开连接以完成通过tcpclient发送数据

时间:2011-07-13 17:09:13

标签: c# networking tcpclient

我需要通过tcpclient通过此代码发送错误列表

private bool TryConn(out TcpClient cliente)
{
    var client = new TcpClient();
    try
    {
        client.Connect(IpAddress, PortNumber);
        cliente = client;
        return true;
    }
    catch
    {
        cliente = null;
        return false; 
    }

}
public void ProcesssRecovery()
{
    //NonMassiveErrorerror= new NonMassiveError();
    TcpClient client;
    //get error
    IEnumerable<NonMassiveError> errorNotNotified = GetUncheckedNonMassiveError();

    //check if lista is not empty 
    if (errorNotNotified .Count() >0 )
    {
        // check connection
        if (TryConn(out client))
        {
            foreach (NonMassiveError error in errorNotNotified )
            {       // sending error<--how detect conn stops
                SendMessage(error, client, "asin" , "");
                error.Save();
            }

        }

    }
        //stop thread 10mins
    else
    {
        Thread.Sleep(TimeSpan.FromMinutes(10)); 
    }           
}

}

如何检查连接是否在foreach中停止发送数据?

2 个答案:

答案 0 :(得分:0)

您应该稍等一下,然后阅读您发送的数据的响应。 如果服务器确认然后它没问题(响应= 0),如果没有停止发送。

答案 1 :(得分:0)

SendMessage()是你自己的方法,对吗?检查其中的socket.Send()是否返回0个字节。这意味着套接字已断开连接。