2011-08-02 13 views
2

私は数時間前から検索しています。私は単純なクライアント/サーバープログラムを作成したいと思います。私は元々Javaでそれらをやることを計画していましたが、2週間前にgodaddyから共有ホスティングアカウントを購入しました。そして、彼らは新しいアカウントのためにjavaを無効にしました。だから、私の次善の選択で、私が幾分慣れ親しんでいる言語では、PHPだと思います。私はtutorialのソケットをJavaサイトからフォローしており、Javaクライアントを作成しています。私は、この例のサーバー部分をPHPに変換しようとしていました。どうやら、godaddyは共有サーバー上のソケットにfsockopen()を使うことを許可します。私は知っている必要があると思う、これは可能です、そして、それが作られたら、私はどのようにPHPファイルを実行するのですか?この例では、クライアントを実行する前にサーバプログラムを起動する必要があると言います。私はそれをどうやって行うのか分からない。Javaクライアントとソケット付きPHPサーバ

答えて

2

私はこれを行うためにrawソケットを使用しません。 PHPは特別な配慮なしにHTTPの処理をサポートするので、代わりにJSON over HTTPを使用してください。 GoDaddyまたはAmazon EC2のホストされたApacheインスタンスでPHPページを実行するのは簡単です。ソケットを使用することはできますが、実際には非常に少ない人がソケットを使用できます。大量に多くの人がPHPでHTTPを処理して対応します。つまり、ここで群れに従うならば、あなたの質問に答えるのを助けることができる人がはるかに多いでしょう。これを簡単に行うためのAPIライブラリも両サイドにあります。ソケットを使用すると、自分でやらなければならないことがたくさんあります。また、初めて生のソケットを扱う際に起こる奇妙なバグを苦しんでいます。

また、JSON処理は、JavaとPHPの両方で簡単にサポートされているため、クライアントとサーバーにデータを簡単に送信できます。

バックエンドでPHPを、フロントエンドでJavaを使用することはできますが、Go-DaddyアカウントをキャンセルしてAmazon EC2/S3アカウントを取得することをお勧めします。あなたはそれを置くことを望みます。したがって、バックエンドでJavaを実行したい場合は、JDK、Tomcatなどをamazonインスタンスにインストールするだけでよいのです。また、そこにPHPをホストすることもできます。 JavaまたはPHPスタック用にプリインストールされたAMIインスタンスも豊富にあります。

+0

ありがとう、私はそれをチェックします。私は結局、非常に小さな4人のオンラインゲームを作りたいと思っています。私は読んでいて、ソケットがそのようなもののために行く方法であるという印象を得ました。私はいくつかのAndroidアプリケーションでJavaとPHPの間でJSONを使用しましたが、うまくいきました。私は、プレーヤーの動きや行動を継続的に更新する必要がある場合、非常に実用的であるとは思わない。 – Mark

+0

ゲームは私の提案の1つの例外を除いては、このゲームがリアルタイムでも連続的でもあります。それがターンベースの場合、私の提案はまだ成り立ちます。しかし、あなたがゲームをやっていると言えるようになったので、おそらくAmazon EC2があなたにもっと役立つでしょう。 – chubbsondubs

+0

私はあなたの助けに感謝します。私は今、正しい方向に向かうことができてうれしいです。私はEC2にサインアップして試してみることにしました。 – Mark

3

私はこれについて100%確信することはできませんが、私は先に進んで、おそらく動作しないと言います。ソケットは、ホスティング会社にとってより高価な側にある可能性があるので、切り取られる最初のものの中に入る可能性があります。ソケットサーバーとして機能するものが必要な場合は、通常、接続を実行しているマシンの特定のポートにアクセスできる長時間実行されるプロセスが必要です。ほとんどのホスティング会社はクライアントごとに環境を作成するため、クライアントは本物のソケットサーバーを実行するために必要なセキュリティアクセスを拒否されます。

私がGoDaddyをホスティング会社として経験したのは、彼らがその考え方に沿って動作しているように見えるということです。私が言うことができるから、GoDaddyはソケットを読み取ってソケットとして動作させ、クライアントをPHPに許可します。それはfsockopenの許容量と一致しています。私はそれがあなたが必要としていることを心から疑う。

実際にサーバーがサーバーにデータを要求するのではなく、サーバーに情報をプッシュする必要がある場合を除き、標準のHTTP要求を使用し、XMLまたはJSON (XMLとJSONの両方がPHPで巧みにサポートされています)。あなたが本当にのソケットサーバーを持っているなら、私はwebmasters.stackexchange.comに行き、this oneのような推奨事項を見つけることができます。

PHPソケットサーバーを作成した後に、Zendの人物の1人にtutorialがあると判断した場合は、彼らはかなりシャープですので、うまくいけばスクリプトを変換するのに十分であるでしょう(それがあなたが決める方法ならば)

+0

ありがとうございます。私は実際にそのPHPソケットサーバチュートリアルを試していました。 – Mark

関連する問題