2008-09-18 13 views
10

Ich versuche ein einfaches Netzwerk Chat-Programm in Java zu schreiben. Ich habe fast keine Netzwerkerfahrung. Ich habe mich gefragt, mit welchen Ressourcen ich anfangen sollte (nebenbei natürlich).Java: Der beste Einstiegslevel Basic Networking

Es wäre am besten, jetzt mit der Kern-Java-API zu kleben.

Antwort

2

Nio oder die traditionelle Art und Weise mit ServerSocket oder Socket java.net package

Nio docs here See.

+0

Für das Wissen der ursprüngliche Plakat, unterstützt NIO IO non-blocking, während die traditionelle Form nicht der Fall ist . Blockieren von IO ist single-threaded; Nicht blockierend ist Multithread. Wenn Sie Dateien über einen Chat-Client übertragen und Benutzer trotzdem in der Lage sein möchten, NIO einzugeben. –

1

Es ist viel mehr gerade - Vorwärts als du denkst. Ehrlich gesagt würde ich gerade anfangen, die Javadocs für das nio-Paket zu durchsuchen. Sie sollten sogar Mini-Tutorials und Quellcode enthalten.

Darüber hinaus sollte java.sun.com mit Tutorials übersät sein.

Wenn Sie nicht verstehen Sockets --- Nun könnte ich Ihnen eine Referenz senden, aber es ist einfacher zu sagen - Steckdosen sind eine Möglichkeit, 2 Programme miteinander zu sprechen. Sie sind nur eine eindeutige Nummer, die Ihnen (in Kombination mit Ihrer IP-Adresse) einen eindeutigen Pfad zu einem Programm gibt. Wenn ich also auf Port (Socket) 1000 "höre", dann verbindet sich ein anderes Programm mit Port 1000, alles, was das Verbindungsprogramm sendet, empfängt das Hörprogramm.

Verwenden Sie eine hohe Portnummer (höher als 5000), da es viele Programme gibt, die ihren eigenen Port zuweisen.

So kommuniziert praktisch alles auf Ihrem Computer.

Vielleicht möchten Sie eine wirklich kurze Einführung in die Socket-Kommunikation lesen, wenn die API immer noch verwirrend ist.

3

Ich empfehle Ihnen, zuerst Networking zu lernen. Wenn Sie Zeit haben, lesen Sie die Tanenbaum book, die größte Referenz in der Vernetzung.Wenn Sie eine schnelle Leard wollen, hier eine Straßenkarte:

  • OSI-Schichten
  • UDP und TCP/IP
  • Sockets
  • Broadcast- und Multicast-
  • Netzwerksicherheit

Dann gehe mit Java: Socket, ServerSocket, DatagramSocket, RMI usw.