|
はじめまして、tomtom といいます。 ソケット通信に興味があり、勉強に励んではや3ヶ月の初心者です。 最近、自分で簡単なクライアントサーバのソケット通信プログラムを 作成してみたのですが、recv関数で受信エラーが発生してしまいます。 メッセージの送信元で、send関数により送信された内容と、 実際にrecv関数で受信した内容を確認してみたところ、きちんと 同じものが受信できているようでした。 そこで、エラー番号から何がおきているのか解析しようとしたのですが、 やり方が間違っているのかエラー番号を何も出力してくれません。 もし、何かお気づきのことがあるようでしたら、 ご指導いただけないでしょうか? 問題の箇所: if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){ print "$msg"; print "errno = $!"; } |
|
度々すみません。 先ほど投稿させていただいたtomtomです。 処理系を書き忘れたので,再度書き込みをさせていただきました。 動かしている処理系は、linuxです。 余談ですが、linux-perlとactive-perlとで、recvやsendなどの システムコールの処理結果は、異なるのでしょうか? (NG時undefを返さず、別のものを返す、、など) クライアントをlinux-perlで、サーバをactive-perl(WinXP)で 起動しおり、サーバの方は、同様のrecv記述で上手く受信できているの で、なにか関係あるのかな、と素人ながら少し気になりました。 以上、度々失礼しました。 |