2011-02-07 40 views
14

Tôi đã có một dự án trường đại học, nơi tôi cần phát triển một hệ thống ngang hàng ngang hàng trong java để chia sẻ tệp.Phát triển ứng dụng Peer to Peer trong Java

Vì vậy, về bản chất, nhiều người dùng có thể chia sẻ tệp bằng cách sử dụng Hệ thống ngang hàng.

Ai đó có thể cho tôi một số nguyên tắc về cách xây dựng hệ thống này không ??

+3

Tôi khuyên bạn nên xem một trong nhiều triển khai mã nguồn mở ngang hàng để chia sẻ tệp và sử dụng chúng làm mẫu (hoặc chỉ sử dụng chúng như chúng) –

Trả lời

15

Đối với dự án đại học, hãy đọc một số hướng dẫn về ổ cắm. Tôi tin rằng đây là điều mà giáo sư của bạn mong đợi từ bạn. Lấy ví dụ như sau: http://www.oracle.com/technetwork/java/socket-140484.html

Có 2 giải pháp chung: máy chủ đầy đủ và ít máy chủ hơn. Trong trường hợp các giải pháp dựa trên máy chủ, tất cả các máy khách của bạn nên được cấu hình sẵn với địa chỉ IP của máy chủ. Máy chủ mở ổ cắm máy chủ và bắt đầu nghe. Vì vậy, mỗi khách hàng kết nối với máy chủ và đăng ký. Việc đăng ký rất đơn giản: máy chủ chỉ cần IP của khách hàng. Bây giờ máy chủ nắm giữ một danh sách các máy khách được kết nối và gửi danh sách tới từng máy khách. Để làm cho ứng dụng peer2peer mỗi máy khách cũng mở ổ cắm máy chủ. Khi client A muốn kết nối với client B, nó chỉ kết nối với socket của nó.

Bạn có thể triển khai giải pháp không có máy chủ. Trong trường hợp này, bạn cần một số cơ chế khám phá dựa trên ví dụ về phát sóng.

Tôi hy vọng điều này sẽ hữu ích. Chúc may mắn.

+0

cách khách hàng không biết máy chủ Địa chỉ IP? Vì (tất cả các thiết bị) chúng chưa được kết nối vào bất kỳ mạng nào? Tôi đang đề xuất truyền thông wifi cho họ. Nhưng nó sẽ là có thể? – gumuruh

+0

Wifi chỉ là một cách để kết nối với thế giới TCP/IP. Nếu khách hàng không biết IP của máy chủ, bạn cần một số loại cơ chế khám phá. Ví dụ: brodcast. Nhưng điều này chỉ có thể có trong các mạng đóng. – AlexR

+0

có nghĩa là không thể cho hai thiết bị Android giao tiếp trên WIFI đã bật WIFI của họ (nhưng không kết nối với bất kỳ mạng nào) - không có internet, không có bluetooth, không có dữ liệu phonecell? Tôi mặc dù java/android có thể phát sóng chuỗi đơn giản của nó qua wifi? @AlexR – gumuruh

2

Bạn muốn kiểm tra JXTA. Trang web đã chuyển đến jxse.kenai.com. Cuốn sách JXTA II thực tế đã có sẵn để đọc trên Scribd.

Các vấn đề liên quan