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)というのがあるみたいではあるのですが・・・。

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/04/04 20:22:31
  • 終了:2014/04/07 22:08:15

ベストアンサー

id:psne No.3

ぽけっとしすてむ回答回数505ベストアンサー獲得回数2792014/04/07 21:45:48

ポイント200pt

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

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

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

他2件のコメントを見る
id:psne

最初のURLで遠回りさせてしまったようで、申し訳ないです。

2014/04/07 22:09:45
id:MrB

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

2014/04/07 22:13:00

その他の回答(2件)

id:tea_cup No.1

tea_cup回答回数1033ベストアンサー獲得回数1852014/04/05 06:41:54

ポイント40pt

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

id:MrB

回答ありがとうございます。

ちょっと調べた感じではVisualBasic、C#などで、
svcHost.Open()
のようなコマンドを使えばできそうですね。

引き続き、VisualBasic、C#以外の方法もお待ちしています。

2014/04/05 07:54:12
id:snow0214 No.2

snow0214回答回数470ベストアンサー獲得回数1162014/04/05 08:13:11

ポイント50pt

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

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

id:MrB

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

2014/04/05 20:00:30
id:MrB

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

2014/04/07 19:35:25
id:psne No.3

ぽけっとしすてむ回答回数505ベストアンサー獲得回数2792014/04/07 21:45:48ここでベストアンサー

ポイント200pt

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

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

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

他2件のコメントを見る
id:psne

最初のURLで遠回りさせてしまったようで、申し訳ないです。

2014/04/07 22:09:45
id:MrB

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

2014/04/07 22:13:00
id:MrB

質問者から

MrB2014/04/12 10:27:23

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

  • id:psne
    http://rainyday.blog.so-net.ne.jp/2007-02-17
    ソケットを使ってはだめですか?
  • id:a-kuma3
    そうだわ、サーバ側には php がインストールされてるんですもんね。
  • id:pmint
    PHPスクリプトをコマンド打ち込んで起動して、ずっと動かし続けることになるかと。
    Apacheは使わないで。
  • id:MrB
    色々コメントありがとうございます。
    みなさんが書かれてるサーバーソケットを動かし続けることでできそうな気がしてきました。
    月曜にならないと試せる環境がないので、試してみて、また、報告させて頂きます。
  • id:MrB
    コメントおよび回答ありがとうございます。
    ぽけっとしすてむさんの書いていただいたURLを参考に
    127.0.0.1:20000
    でソケットサーバーを立てlocalでリクエスト&レスポンスまで確認できました。
    ただ、今度は外部からアクセスができないという壁にぶつかりましたので、
    そちらを別途質問させて頂こうと思います。

    ぽけっとしすてむさんお礼をしたいので、改めて回答として記載頂けないでしょうか。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません