0

PHPだけを使用してp2pを実装することは可能ですか? Flash や Java を使用せず、コンピュータにある種のエージェント/クライアントをインストールすることも明らかにありません。

したがって、「真の」p2pではないかもしれませんが、サーバーを使用して何らかの接続を確立しますが、残りの通信はp2pを使用して行う必要があります

「php」とは、phpバイナリではなく、両方のピアから離れたWebサーバーでホストされているphpスクリプトを意味していたため、各ピアにはブラウザーしかありません。

4

9 に答える 9

2

自分のコンピュータにある種のエージェント/クライアントをインストールせずに

各コンピューターには、PHP バイナリーがインストールされている必要があります。

編集

別の投稿で、ブラウザベースについて言及しました。JavaScript のセキュリティ制限により、この種のやり取りは禁止されます

于 2009-07-14T15:40:45.190 に答える
1

いいえ。

PHP で P2P クライアント/サーバーを作成することもできますが、参加するコンピューターにインストールする必要があります。

P2P ソフトウェアをインストールせずに、Web サーバーで PHP を実行して、他の 2 台のコンピューターが相互に通信することはできません。

JavaScript を使用して支援することさえできません — 同じオリジン ポリシーがそれを防止します。

ブラウザーを実行する JavaScript は、PHP ベースのサーバーを仲介者として使用して、2 つのクライアントが通信できるようにすることができますが、P2P を実現することはできません。


2009 年以降 (この回答が最初に作成されたとき)、WebRTC プロトコルが作成され、ブラウザー間で広くサポートされています。

これにより、Web ブラウザー間でピアツーピアを実行できますが、JavaScript でコードを記述する必要があります (WebAssembly もオプションであり、PHP を記述できるようにするものです)。

また、PHP で記述できる、WebRTC をサポートするための非ピア サーバー コードの束も必要です(たとえば、ファイアウォールを通過するピア検出とプロキシ データを許可するため)。

于 2009-07-14T15:39:19.590 に答える
1

サーバー側アプリケーション (PHP) には、ソケット接続を確立するためにポート、IP アドレスなどを定義するために必要なピアのシステム アクセスがないため、理論的ではありません。

添加:

しかし、各ピアの Web サーバーで PHP を使用する場合は、探しているものが得られる可能性があります。

于 2013-08-27T20:52:14.707 に答える
-1

ピア ツー ピア通信とは、中間にサーバーが介在せずに、あるクライアントから別のクライアントに直接通信が行われることを意味しませんか? PHP はサーバーベースのソフトウェアであるため、PHP で作成したプログラムが真の p2p と見なされるとは思えません。

ただし、仲介者として php サーバーを使用してクライアント間の通信を有効にしたい場合は、それは間違いなく可能です。

于 2009-07-14T15:37:37.893 に答える
-1

はい。ただし、間にサーバーがあるため、一般に p2p と呼ばれるものではありません。あなたがやりたいことは、「仲介者」サーバーなしでピア間を直接接続するのではなく、ピアが互いに通信することであると感じています(これは通常、p2pが意味するものです)

スケーラビリティの要件に応じて、この種の通信の実装は簡単 (クライアントでの単純なポーリング スクリプト) または要求が厳しい (非同期コメット サーバー) 場合があります。

于 2011-06-10T00:16:59.487 に答える
-2

デモンストレーション目的では、組み込みのphpテストサーバーを使用するだけで済む場合がありますが、両方の当事者がapacheなどのサーバーを実行する必要があります。次に、php でのファイアウォール ホール パンチングを調査する必要があります。github で考えられるスクリプトを見ましたが、かなり前のことでした。はい、可能です。クライアントが精通したプログラマー タイプでない場合は、おそらく php がインストールされ、実行されていることを確認する必要があります。パス変数は、Windows のシステム レジストリに追加しない限り機能しない可能性があるため、両方のパスがシステム レジストリにあることを確認して Windows が見つけられるようにするバット ファイルを提供するようにしてください。申し訳ありませんが、Linux ユーザーではありません。次に、コードを開発する必要があります。ホール パンチングがどのように機能するかについての説明があり、2 台のコンピューターが互いの IP アドレスを見つけられるようにするために必要なパブリック ドメイン上のサーバーが必要です。たぶん、次のような無料のWebサイトで何かを仕掛けることができますwww.000.webhost.comまたは、個人の電子メール アドレスを使用するなど、何らかの組み込みメカニズムを使用することもできます。現在のIPを報告します。

最大の問題はルーターとファイアウォールですが、パケットがパブリック IP に向けられている場合でも、LAN 上の宛先を知る必要があるため、パケットの書き込み方法に関する情報は簡単です。運が良ければ、ほとんどの作業を行ってくれるスクリプトが見つかるかもしれません。

于 2021-07-13T21:40:04.893 に答える