2011-02-07 4 views
14

나는 파일 공유를 위해 Java에서 피어 투 피어 (peer to peer) 시스템을 개발해야하는 대학 프로젝트를 가지고 있습니다.Java에서 피어 투 피어 응용 프로그램 개발

그래서 여러 사용자가 피어 투 피어 시스템을 사용하여 파일을 공유 할 수 있어야합니다.

누군가이 시스템을 만드는 방법에 대한 몇 가지 지침을 제공 할 수 있습니까 ??

+3

피어 투 피어 파일 공유의 많은 오픈 소스 구현 중 하나를 살펴본 다음 템플릿으로 사용하거나 (그대로 사용하는 것) –

답변

15

대학 프로젝트의 경우 소켓에 관한 튜토리얼을 읽으십시오. 나는 이것이 당신의 교수가 당신에게서 기대하는 바라고 믿습니다. 예를 들면 다음과 같습니다. http://www.oracle.com/technetwork/java/socket-140484.html

서버 전체 및 서버리스의 두 가지 일반적인 솔루션이 있습니다. 서버 기반 솔루션의 경우 모든 클라이언트가 서버의 IP 주소로 사전 구성되어 있어야합니다. 서버가 서버 소켓을 열고 청취를 시작합니다. 따라서 각 클라이언트는 서버와 레지스터에 연결됩니다. 등록은 매우 간단합니다. 서버는 클라이언트의 IP 만 필요로합니다. 이제 서버는 연결된 클라이언트 목록을 보유하고 목록을 각 클라이언트로 보냅니다. peer2peer 앱을 만들려면 각 클라이언트가 서버 소켓을 엽니 다. 클라이언트 A가 클라이언트 B에 연결하기를 원하면 소켓에 연결 만합니다.

서버리스 솔루션을 구현할 수 있습니다. 이 경우에는 예를 들어 방송에 기반한 검색 메커니즘이 필요합니다.

이 정보가 도움이되기를 바랍니다. 행운을 빕니다.

+0

서버를 모른다는 클라이언트는 어떻습니까? IP 주소? 이후 (모든 장치) 그들은 아직 어떤 네트워크에 연결되지 않은거야? 나는 그들에게 무선 통신을 제안하고있다. 그러나 가능할 것인가? – gumuruh

+0

와이파이는 TCP/IP 세계에 연결하는 방법 일뿐입니다. 클라이언트가 서버의 IP를 모르는 경우 검색 메커니즘이 필요합니다. 예를 들면 brodcast. 그러나 이는 닫힌 네트워크에서만 가능합니다. – AlexR

+0

은 두 개의 안드로이드 장치가 이미 WIFI에서 통신 할 수 없음을 의미합니다 (인터넷에 연결되어 있지는 않지만 WIFI는 켜져 있음). 인터넷, 블루투스, 폰셀 데이터가 없습니까? java/android가 wifi를 통해 간단한 문자열을 브로드 캐스팅 할 수 있었지만 @AlexR – gumuruh

2

JXTA를 확인하고 싶습니다. 사이트가 jxse.kenai.com (으)로 이동했습니다. 실용적인 JXTA II 서적은 Scribd에서 읽을 수 있습니다.

관련 문제