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

windowsで20000番ポートにアクセスがあったら、
C:\php\php.exe sample.php
を実行するというような処理をさせるにはどんな方法があるのでしょうか。

ちなみに、アクセス元は接続後、
1111111111
のようなデータを送ってきています。

apacheで無理やりやろうと思って、20000番ポートでapacheを起動し、apacheのドキュメントルートにindex.phpをおいて試したところ、
$_SERVER["REQUEST_METHOD"]

1111111111
を無理矢理取得することはできたのですが、レスポンスを返す時に
2222222222
というようなデータだけを送りたいのに
HTTP/1.1 200 OK
Content-Length: ***
・・・
のようなヘッダがついてしまうので、apache以外の方法でできないかと思っています。
cgiだとNPH(Non-Parsed-Header)というのがあるみたいではあるのですが・・・。

分かりづらい説明ですみませんが、よろしくお願いします。

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

▽最新の回答へ

1 ● tea_cup
●40ポイント

ポートを開いておいて、アクセスがあったら必要なプログラムを呼び出すのは、Svchost.exe にサービスを登録するのがWindows流なようですが、適切な情報が見つけられませんでした。
svchost.exe とは - Microsoft Windows ヘルプ


MrBさんのコメント
回答ありがとうございます。 ちょっと調べた感じではVisualBasic、C#などで、 svcHost.Open() のようなコマンドを使えばできそうですね。 引き続き、VisualBasic、C#以外の方法もお待ちしています。

2 ● snow0214
●50ポイント

PEAR::Net_Serverでサーバデーモンを作ることができます。
PHPだけでソケットの送受信ができます。

下の記事が参考になります。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070910/281513/


MrBさんのコメント
pearでもできるんですね。 意外といろいろな方法がありそうですね。 月曜になりますが、こちらも試してみます。

MrBさんのコメント
別の壁にぶつかってしまって、こちらはまだ、試せてませんが、サーバーソケットと同じような感じで使えそうですね、ありがとうございます。

3 ● ぽけっとしすてむ
●200ポイント ベストアンサー

PHP でサーバソケットプログラミング (1):Rainy Day Codings:So-net blog
コメントのとおり、ソケットを使用することでデータのやり取りが可能になるかと思います。

ソケット関数:PHPマニュアル
こちらのサンプルは、ちょっと丁寧に設定をして通信するので、別PCからも送受信できるかと思います。
エコーバックしてくれます。

#試す時間が無く、回答としては物足りないだろうなぁ という事で、コメントに記載しました。


ぽけっとしすてむさんのコメント
>> 例 1. ソケットの例: 簡易 TCP/IP サーバ << のソースを利用して確認しました。 Windowsでは、先頭の >> #!/usr/local/bin/php -q << は必要ありませんが、有ってもそのまま動作します。

MrBさんのコメント
socket_create_listen はローカルホスト専用だったんですね。 大きな点を見落としてました。 本当に感謝します。

ぽけっとしすてむさんのコメント
最初のURLで遠回りさせてしまったようで、申し訳ないです。

MrBさんのコメント
いえいえ、短いサンプルだったので、よく内容を理解せずに使ってしまった私の落ち度です。助けて頂き、ありがとうございました。

質問者から

言われてみれば当たり前なんですが、意外と自分では気づかないものです。もっと精進が必要ですね。皆様ありがとうございました。


関連質問

●質問をもっと探す●



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