我有一个TcpClient
对此我连接到本机和一切工作fine.Now一个额外的步骤,我想每timer.As的帮助来监控非常60秒的连接状态话题我才知道,有没有直接的方法来测试它。所以我试图通过发送到机器的最近消息的响应时,应用程序就会从网络中得到它的基础研究。TcpClient的连接状态问题
这里是代码..
// Find out whether the socket is connected to the remote host.
//Send a message to Machine
try
{
byte[] notify = Encoding.ASCII.GetBytes("Hello");
stream.Write(notify, 0, notify.Length);
}catch { }
//Check if it reached to machine or failed
bool getConnectionStatus = client.Connected;
if (getConnectionStatus == true)
{
//Do nothing
}
else
{
//Stop the thread
_shutdownEvent.WaitOne(0);
_thread.Abort();
//Start Again
_thread = new Thread(DoWork);
_thread.Start();
}
但是,在这种情况下发生的最令人惊讶的事情是,如果机器是从网络中则也同时写了第一次能写而这就是为什么连接状态来作为连接虽然是出了network.Second时候,它正试图发送失败的数据和预期的一样状态为断开。
我面临的主要问题是,一旦它从网络上断开连接,为什么它能够发送数据。由于这个,我丢失了当网络运行时存储在机器中的所有缓冲区数据关闭。 请帮助我..
发送一个“PING”,等待一个“PONG” – 2014-09-29 13:22:12
@AlexK。很抱歉,我没有得到你 – 2014-09-29 13:34:33