vxworksのソケット記述子を使用してリモートエンドのステータスを確認するにはどうすればよいですか。TCP接続を使用しています。
2009 次
3 に答える
0
VxWorksはBSDSocketsAPIを使用します。リモートステーションが接続を終了すると、read()およびwrite()関数などのI / O関数はエラーステータス(読み取り/書き込みの場合は-1)を返し、 errnoを設定します。
于 2010-11-12T14:02:22.773 に答える
0
私が使用した少なくともいくつかのBSD派生スタックでは、getpeername()を使用してもう一方の端が閉じているかどうかを確認できます。サポートスタックでは、もう一方の端が接続の半分を閉じている場合、これは-1を返し、ENOTCONNを設定します。
これにより、ソケット読み取り呼び出しを行わなくても、もう一方の端がclose()を呼び出したかどうかを照会できます。前に述べたこととは逆に、IPスタックは、もう一方の端が接続の半分を閉じるときにFIN通知を受信するため、もう一方の端への接続を開始せずにIPスタックからこれを見つけることができます。次に、この情報をスタックで使用して、もう一方の端が閉じたことを将来のgetpeername()呼び出し元に通知できます。
于 2010-11-18T00:19:04.907 に答える
-1
投稿を参照してください:- クライアントサーバープログラムで接続数を制限する方法
于 2010-11-14T18:12:27.003 に答える