2


就是希望能判断某个tcp是否是连接的,或者能获取处于连接状态的tcp,使用VC或C也行

垃圾帖?
提问于2009-04-01 04:54:31
90 5
添加评论
1


如果使用.NET Framework的话,在Socket类中有个Connected属性可以获得当前的socket连接状态。

client->Connect( anEndPoint );
if (  !client->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}

不过根据MSDN的描述,这个属性是从上一个I/O操作中获取的。如果你要在发包前确定连接的当前状态,它的建议是:

请进行非阻止、零字节的 Send 调用。如果该调用成功返回或引发 WAEWOULDBLOCK 错误代码 (10035),则该套接字仍然处于连接状态;否则,该套接字不再处于连接状态。

可能这个讨论对你的问题也有所帮助。

永久链接 | 垃圾帖?
回答于2009-04-01 09:06:32
348 2 10
添加评论
1


建议,你看一下tcp/ip详解,自然会明白, 可以选择自己的心跳信号,或者使用connect_live .

永久链接 | 垃圾帖?
回答于2009-04-05 13:56:09
60 1
添加评论
0


用netstat命令可以查看。状态其实不只只是连接和断开,是TIME_WAIT,ESTABLISHED等几种,看TCP/IP详解你就明白了。

永久链接 | 垃圾帖?
回答于2009-12-16 09:37:18
1
添加评论
0


一楼的算 是正解,不过是用C#写的,

不过一楼是怎么知道,他想在控制台输出呢?

永久链接 | 垃圾帖?
回答于2009-12-21 23:57:58
1
添加评论




Made with Django.

当前版本: R-0127-20090523

cc-wiki