クライアントサーバー通信用にVB6コードをcsharp.netに実装しています。通信用のVB6では、Winsockコントロールを使用し、クライアント/リモート接続ステータスが利用可能かどうかを確認していました。C シャープでは、通信に tcplistner クラスとソケット クラスを使用します。しかし、リモート/クライアントのステータスが接続されているかどうかを確認する方法を見つけることができません。
ソケット プログラム、ASP.Net C#、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"
}
C# コード:
コード CommForm.Sock(i).State <> sckClosed については、ASP.net C# で次のようにしてみました
if(!client.Connected)
クライアントは.netのsockectオブジェクトです
しかし、.net で CommForm.Sock(i).State の同等のコードを見つけることができませんでした。True/False を返す .poll が 1 つありますが、VB6 WinSock のようにソケット状態を取得できるものは他にありますか?