2009-07-14 3 views
0

PHP 만 사용하여 P2P를 구현할 수 있습니까? 플래시 또는 Java없이 분명히 자신의 컴퓨터에 일종의 에이전트/클라이언트를 설치하지 않아도됩니다.PHP 이외의 것을 사용하여 피어 투 피어 통신이 가능합니까?

이되지 않을 수도 있습니다 순간에도 "true"로 P2P하지만 어떤 종류의 연결을 설정하기 위해 서버를 사용 싶지만, 통신의 나머지 부분은 "으로, 나는 약간의 오해에 대해 사과의 P2P

을 사용하여 수행 할 수 있어야합니다 php "나는 PHP 바이너리가 아니라 웹 서버에서 호스팅되는 php 스크립트를 의미합니다. 따라서 각 피어는 브라우저 만 가지고 있습니다.

+0

이 질문의 의미를 조금 더 설명하고 싶을 수 있습니다. 어떻게 PHP를 사용하고 싶습니까? 웹 서버 또는 독립 실행 형입니까? 사용자 인터페이스는 무엇을 할 수 있어야합니까? – txwikinger

+0

네, 일부 설명이 도움이 될 것입니다. 나는 OP가 "* 단지 PHP를 사용하여 브라우저 기반 P2P 서비스를 구현할 수 있습니까?"라는 질문 대신 OP가 대답하는 질문에 대답하기 위해 downvoted를 얻었습니다. 대답은 물론 "no"입니다.) . – chaos

+0

왜 Opera Unite 파일 공유를 사용하지 않는가? http://unite.opera.com/service/132/ –

답변

2

번호

당신은 PHP —의 P2P 클라이언트/서버를 작성할 수 있지만 참여 컴퓨터에 설치해야합니다.

웹 서버에서 PHP를 실행 시키면 다른 두 컴퓨터가 P2P 소프트웨어를 설치하지 않고도 통신 할 수 없습니다.

도 도움이되는 —을 원조하는 데 도움이되는 JavaScript는 사용할 수 없습니다.

브라우저를 실행하는 JavaScript는 PHP 기반 서버를 중개자로 사용하여 두 클라이언트가 —과 통신 할 수 있지만 P2P를 달성하지 못합니다. 하나의 컴퓨터에 에이전트/클라이언트의 일종을 설치하지 않고

+1

WebRTC를 사용해 보지 않으시겠습니까? peer.js – CMCDragonkai

0

피어 투 피어 통신은 중간에 서버가 없어도 한 클라이언트에서 다른 클라이언트로 직접 통신한다는 것을 의미합니까? PHP는 서버 기반 소프트웨어이기 때문에 여러분이 작성한 프로그램은 진정한 P2P로 간주 할 수 없다고 생각합니다.

그러나 중개자로서 PHP 서버와의 클라이언트 - 클라이언트 통신을 사용하려면 확실히 가능합니다.

+0

허위 정보로 Downvoted. PHP는 서버 기반이 아닙니다. –

+1

PHP 스크립트를 로컬로 실행하려면 PHP 인터프리터를 설치해야합니다. OP에서 Flash 또는 Java를 설치하지 않으려면 PHP를 로컬로 설치하려고합니다. – chrisbunney

1

각 컴퓨터에 설치되어있는 PHP 바이너리를해야합니다.

편집 난 당신이 기반 브라우저를 언급 한 다른 게시물에 볼

. 자바 스크립트의 보안 제한은 이러한 유형의 상호 작용을 금지합니다.

0

브라우저가이 PHP 응용 프로그램으로 데이터를 전송하도록 할 것인지 여부에 따라 다릅니다.

저는 IRC 봇을 PHP로 만들었습니다. IRC 봇은 mIRC와 비슷한 방식으로 웹 브라우저에서 상태와 결과를 보여주었습니다. 방금 제한 시간을 무한대로 설정하고 소켓을 사용하여 IRC 서버에 연결했습니다. 당신은 아무거나에 연결할 수 있었다. 들어오는 연결을 수신 대기하고 처리 할 수도 있습니다. 당신이 할 수없는 것을

은 정말, 아니

0

(... 아직 어쨌든) 요청을 파괴하지 않고 양방향 연결을 유지 브라우저를 얻는 것입니다. PHP 스크립트는 아주 짧은 시간 동안 만 실행됩니다. 보통 기본 최대 실행 시간은 2 분입니다. 보통 P2P 통신에는 충분하지 않습니다. 이 후 스크립트는 취소되지만 서버 관리자는이를 비활성화 할 수 있습니다.그러나 그때에도 서버와 클라이언트 간의 http 연결이 유지되어야하는 전체 다운로드 시간이 필요합니다. 클라이언트 브라우저는이 시간에 페이지로드 표시기를 표시합니다. 연결이 끊어지면 대부분의 웹 서버가 PHP 스크립트를 죽이기 때문에 P2P 다운로드가 취소됩니다.

따라서 P2P 프로토콜을 구현하는 것이 가능하지만 클라이언트/서버 시나리오에서는 PHP 스크립트의 실행 모델에 문제가 있습니다.

0

중간에 서버가 있기 때문에 예,하지만 일반적으로 p2p라고하는 것은 아닙니다. 나는 당신이하고 싶은 것이 비록 중개인 서버 (보통 P2P가 의미하는 것)가 아닌 그들 사이에 직접 연결을하기보다는 서로 의사 소통하게하는 것입니다.

의존 확장 성 요구 사항에 대해 이러한 종류의 통신을 구현하는 것은 간단 할 수 있습니다 (클라이언트의 간단한 폴링 스크립트) 또는 까다로운 (비동기 혜성 서버) 일 수 있습니다.

1

소켓 연결을 설정하기 위해 서버 쪽 응용 프로그램 (PHP)에 포트, IP 주소 등을 정의하는 데 필요한 피어의 시스템 액세스 권한이 없으므로 이론적이지 않습니다.

ADDITION :

그러나 각 피어의 웹 서버에서 PHP와 함께 갈 것 인 경우에, 즉 당신이 찾고있는 무엇을 줄 수 있습니다.

관련 문제