如何使用Socket在C#.net中获取Winsock.state

如何使用Socket在C#.net中获取Winsock.state,c#,sockets,winsock,C#,Sockets,Winsock,我们正在将VB6代码实现到c sharp.net以进行客户机-服务器通信。在VB6中使用Winsock控件进行通信,并检查客户端/远程连接状态是否可用。在C语言中,我们使用tcplistner类和socket类进行通信。但我们无法了解如何检查远程/客户端是否已连接的状态 套接程序,ASP.NETC#,VS2008 VB6代码 'checking socket status if CommForm.Sock(i).State <> sckClosed then s="Connecti

我们正在将VB6代码实现到c sharp.net以进行客户机-服务器通信。在VB6中使用Winsock控件进行通信,并检查客户端/远程连接状态是否可用。在C语言中,我们使用tcplistner类和socket类进行通信。但我们无法了解如何检查远程/客户端是否已连接的状态

套接程序,ASP.NETC#,VS2008

VB6代码

'checking socket status

if CommForm.Sock(i).State <> sckClosed then
s="Connection opened"
else
s="Connection closed"
end if

Public Function GetSockStatus()
{
  Select Case CommForm.Sock(i).State
  Case sckClosed
    GetSockStatus = "Closed"
  Case sckOpen
    GetSockStatus = "Open"
  Case sckListening
    GetSockStatus = "Listening"
  Case sckConnectionPending
    GetSockStatus = "Connection pending"
  Case sckResolvingHost
    GetSockStatus = "Resolving host"
  Case sckHostResolved
    GetSockStatus = "Host resolved"
  Case sckConnecting
    GetSockStatus = "Connecting"


}
其中客户端是.net中的socket对象


但是我在.net中找不到任何与CommForm.Sock(I).State等效的代码,有一个.poll返回True/False,但是是否有其他任何代码可以像在VB6 WinSock中一样为我们提供套接字状态。

为什么您需要访问套接字状态信息?您是否考虑过使用网络库来节省自己的时间?我是networkComms.net的开发人员,它受VB和C#的支持。MarcF我们在服务器端网页上显示窗口,它显示套接字的状态。因此,最终用户了解通信进度。我们还没有使用任何网络库,比如NetworkComms.net,因为我们即将使用socket和tcplistener完成项目,所以我可能不得不重新编写代码。若我们在项目开始时遇到了这样的情况,那个就太好了。
  if(!client.Connected)