久しぶりに INET 通信サーバ書いたので

いやあ、久しぶりにインターネットソケット通信処理を書いたので、つまらんところでハマってしまった(^^;

UDP 通信サーバを Perl で書いたのだが、なぜか外のマシンから接続できない。
自サーバ内でテスト用のクライアントを走らせたらちゃんとメッセージが届くのに・・・

ええ、そうです。あなたの推測どおりでございます(^^;

IO::Socket::INET モジュール使ってるんだけど、その new() コンストラクタ内のオプションで、

my $s = IO::Socket::INET->new(

    LocalAddr => "localhost",
    LocalPort => 50001,
    ReuseAddr => 1,
    Proto     => "udp"

) or die $!;

ってしてただけの話しで(^^;
"localhost"にバインド(アドレス設定)してるんで、同一マシン内からしか接続できないのが当たり前だ。
いや、ま、実際には LocalAddr => $LOCAL_ADDR という具合に定数でセットしてたんで、それに気づくのが遅れてしまった(^^;とほほ・・・
20120213_udp_server.JPG
あと、最初にテストしていたのが、ルータでポートフォワーディングしまくりとか、色々特殊なネットワーク環境下だったので、疑うべきところが色々あって、そこまでなかなか目が向かなかったというのも言い訳の一つに揚げておこう(^^;

LocalAddr に、外部から接続可な IP アドレスを設定すれば問題解決。

さあ、これで客先にこのサーバ持ち込んでテスト出来るぞ。

テスト用サーバが EeePC 4G なんで(今、テストに使える UNIX 環境がこれしか無かったのよ(^^;)、お客さん、びっくりするかもしれんけど(^^;;;

トラックバック(0)

このブログ記事を参照しているブログ一覧: 久しぶりに INET 通信サーバ書いたので

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1983

コメントする

このブログ記事について

このページは、shinodaが2012年2月14日 04:15に書いたブログ記事です。

ひとつ前のブログ記事は「そうだよ!GOGOやまぐち弁当はこれでなくちゃ!」です。

次のブログ記事は「ふむふむ。スエヒロラーメンはヤサイ増しするべきだったのだな」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら