ソケット通信のbindでエラーコード 134のエラーが発生します。

[戻る]
snow 2002/10/11(金) 14:44:57
C言語
Solaris

ソケット通信で、サーバ側の終了をCtrl+Cのシグナルを拾って行っています。
クライアントが接続、切断を行ったのち、サーバ側をCtrl+Cで終了した場合は、
再度サーバ側を起動しても、エラーが発生することはありません。

しかし、クライアントが接続、その後サーバ側をCtrl+Cで終了、
クライアント側はサーバが落ちた事を拾って終了。
すると、再度サーバ側を起動すると、bindで"134"のエラーが発生してしまいます。
errno.hを見ると”Address already in use”と書いてありましたが、
Ctrl+Cのシグナルを拾った後、
shutdown( socket);
close( socket );
としています。
shutdownではかならずエラーが発生していて、エラーコードが、134(Socket is not 
connected)でした。
サーバ側からの終了後は、必ずbindでエラーが発生するものなのでしょうか?
それとも何か抜けているのでしょうか?
教えてください。

YuO [E-Mail] 2002/10/15(火) 14:53:15
bindしたソケットは単純に待っているだけですから,
shutdownでシャットダウンを通知する相手はいません。
つまり,bindしたソケットに対してshutdownは不要です。


あと,ソケットを閉じるのはclosesocketです。

snow 2002/10/17(木) 13:35:35
>YuO

遅くなりました。解決しました。ありがとうございます。

古いスレッドには追加発言できません。