人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで以下のURLを参考にサーバーソケットプログラムを試しています。
http://rainyday.blog.so-net.ne.jp/2007-02-17

c:\php\php.exe test.phpをコマンドラインから実行した状態で、
ローカルで127.0.0.1:20000にtelnetでアクセスした場合はうまく動いているのですが、別のPCから192.168.1.100:20000などでアクセスすると接続できないと出ます。

ちなみに20000ポートでapacheを立ち上げると普通にアクセス等ができるので、ルータやファイヤーオールの設定等ではなさそうです。

情報不足かもしれませんし、初歩的なミスかもしれないのですが、何かアドバイスはありますでしょうか。
なお、OSはwindowsです。

●質問者: MrB
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

Windowsファイアウォールで、ブロックされているんじゃないかと思うのですが。
php.exe にたいして 20000 のポートを許可するか、一時的にファイアウォールを無効にしてみると、はっきりすると思います。

http://asciipc.jp/blog/windows7/windows72windows/


MrBさんのコメント
はい、そう思って、ファイアウォールを無効にしてみたりもしたのですが、結果は変わらずでした。

a-kuma3さんのコメント
20000で待ちかまえている方や、つなごうとしているPCのイベントビューアに何か出てるとか。

MrBさんのコメント
20000で待ち構えてる方がいる場合は、c:\php\php.exe test.phpの実行時にワーニングが出て、実行できないです。PCのイベントビューアにも特に何も出てなさそうです。

ぽけっとしすてむさんのコメント
ところで、telnetで試した場合の >telnet 127.0.0.1 20000 >telnet localhost 20000 では接続できると思いますが、自IPアドレス(例えば、192.168.1.101などのipconfigで出てくるアドレス)にて接続は出来るのでしょうか。 >telnet 192.168.1.101 20000

MrBさんのコメント
ありがとうございます。自IPアドレスでは接続できなかったです。

MrBさんのコメント
なんとなく原因が分かった気がします。

MrBさんのコメント
恥ずかしいくらい初歩的な問題でした。 socket_create_listen 関数はローカルホスト専用なので、外部からは使えない ということだけだったです。 ご迷惑おかけしました。 socket_create socket_bind socket_listen を順番にアドレスとポートを指定して実行することでうまくいきました。

a-kuma3さんのコメント
ぼくも、質問のページを見てて、アドレス指定がないじゃない、ということに、たった今、気が付きました (^^;

MrBさんのコメント
ですよね。すみません。お騒がせしました。

a-kuma3さんのコメント
こちらこそ、引っ掻き回して、すみませんでした(謝)。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ