1. Grundlegende Netzwerkkonzepte
Klären Sie zunächst ein Konzept: Netzwerkprogrammierung! = Website -Programmierung, Netzwerkprogrammierung wird jetzt allgemein als TCP/IP -Programmierung bezeichnet.
2. Netzwerkkommunikationsprotokoll und Schnittstelle
3.. Kommunikationsprotokoll -Layering -Idee
4. Referenzmodell
V. IP -Protokoll
Der Computer eines jeden hat eine eindeutige IP -Adresse, damit die Fehlermeldung bei der Kommunikation miteinander nicht übertragen wird.
Eine IP -Adresse ist durch einen Punkt in vier Segmente unterteilt. Die IP -Adresse im Computer wird durch vier Bytes dargestellt. Ein Byte stellt ein Segment dar, und die maximale Zahl, die von jedem Byte dargestellt wird, kann nur 255 erreichen.
Vi. TCP -Protokoll und UDP -Protokoll
TCP und UDP befinden sich auf derselben Ebene und basieren beide auf der IP -Schicht. Da die beiden Computer unterschiedliche IP -Adressen haben, können die beiden Computer unterschieden werden und miteinander sprechen. Es gibt im Allgemeinen zwei Möglichkeiten zu sprechen: Der erste ist TCP und der zweite ist UDP. TCP ist eine zuverlässige Verbindung. TCP ist wie einen Anruf zu tätigen. Sie müssen zuerst die andere Partei anrufen und darauf warten, dass die andere Partei antwortet, bevor Sie weiterhin mit der anderen Partei sprechen. Das heißt, Sie müssen bestätigen, dass Sie die Nachricht senden können, bevor Sie die Nachricht senden. TCP lädt alles zuverlässig hoch. Solange eine Verbindung auf zwei Maschinen hergestellt wird, werden die auf der Maschine gesendeten Daten definitiv an die Maschine der anderen Partei übertragen. UDP ist wie das Senden eines Telegramms und es wird geschehen, wenn es verschickt wird. Es spielt keine Rolle, ob die andere Partei es erhält oder nicht, daher ist UDP unzuverlässig. Obwohl TCP Daten zuverlässig überträgt, wird sie langsam übertragen. UDP überträgt die Daten unzuverlässig, wird jedoch schnell übertragen.
7. Socket -Programmierung
Im Allgemeinen wird die Netzwerkprogrammierung als Socket -Programmierung bezeichnet und Socket bedeutet "Socket" in englischer Sprache.
Installieren Sie eine Socket auf beiden Computern und schließen Sie die beiden Enden eines Kabels in die Sockel der beiden Computer an, damit die beiden Computer eine Verbindung herstellen können. Diese Steckdose ist die Steckdose.
Da sie miteinander kommunizieren können, sagte ich, dass Sie mein Server sind, aber im logischen Sinne sollte ich die Dinge zuerst an Sie senden, und dann werden Sie sie behandeln und weiterleiten. Sie nennen es also Server. In technischer Sinne wird jedoch nur TCP den Server und den Client teilen. Für UDP gibt es im strengen Sinne keinen sogenannten Server und Client. Der Socket des TCP -Servers wird als ServerSocket bezeichnet und der Client -Socket heißt Socket.
Wenn zwei Computer miteinander verbunden sind, müssen Sie zunächst ihre IP -Adressen kennen, aber nur IP -Adressen reicht nicht aus. Sie müssen auch die Portnummer der Verbindung haben, dh, zu welcher Anwendung eine Verbindung hergestellt werden soll.
Die Portnummer wird verwendet, um verschiedene Anwendungen auf einer Maschine zu unterscheiden. Die Portnummer nimmt 2 Bytes im Computer ein. Es gibt bis zu 65536 Portnummern auf einer Maschine. Eine Anwendung kann mehrere Portnummern belegen. Wenn die Portnummer von einer Anwendung eingestuft wird, können andere Anwendungen diese Portnummer nicht mehr verwenden. Denken Sie daran, wenn das von uns geschriebene Programm die Hafennummer besetzen sollte, wenn es die Portnummer über 1024 besetzen möchte, belegen Sie die Portnummer unter 1024 nicht, da das System möglicherweise jederzeit angefordert wird. Die Portnummer selbst ist in TCP -Port und UDP -Port unterteilt. TCP -Port 8888 und UDP -Port 8888 sind zwei völlig unterschiedliche Ports. Es gibt 65536 TCP -Ports und UDP -Ports.
8. TCP -Sockelkommunikationsmodell
9. Sockel -Nutzungsbeispiele
Serversocket
Java.net.*; Java.io importieren. /* Beim Erstellen eines ServerSocket -Objekts wird häufig eine Portnummer zugewiesen. Die Bedeutung besteht darin, zu verwenden, welche Portnummer das neue ServerSocket -Objekt verwenden sollte und welche Portnummer die Verbindung des Clients anhört. Daher besteht die Bedeutung der Angabe einer Portnummer darin, dem Computer mitzuteilen, wo das ServerSocket -Objekt die Verbindung des Clients hört. */ * Die Serverseite empfängt die Verbindungsanforderungen des Clients kontinuierlich, sodass die serverseitige Programmierung im Allgemeinen eine tote Schleife ist und endlos ausgeführt wird. */ while (true) {Socket s = S.Accept (); /*Rufen Sie die Methode Accept () auf der Serverseite an, um das Verbindungsobjekt des Clients zu akzeptieren. Die Methode Accept () ist eine Blockierungsmethode. Ich habe dumm gewartet, ob ein Kunde die Verbindung beantragt. Anschließend stellt der Socket Socket auf der Serverseite eine Verbindung mit dem Socket -Socket am Client her. * / /* Ob der Client eine Verbindung zur Serverseite herstellen kann, hängt davon ab, ob die Serverseite die Verbindungsanforderung des Clients akzeptiert. Wenn der Client die Verbindungsanforderung akzeptiert, installieren Sie einen Socket -Socket auf der Serverseite, um eine Verbindung mit dem Client über diesen Socket herzustellen, und kommunizieren Sie miteinander. */ System.out.println ("Ein Client angeschlossen!"); /* Verwenden Sie den InputStream -Stream, um Informationen vom Client zu empfangen, und verwenden Sie den DataNputStream -Datenstrom, um die empfangenen Informationen zu verarbeiten /* Verwenden Sie Readutf (Methode liest alle empfangenen Informationen und speichert sie in der Variablen-STR, um die Readutf () -Methode zu lesen. Es ist auch eine Blockierungsmethode. Es wird dumm warten, dass der Client Informationen sendet Das Programm ist blockiert, sodass der andere Client eine Verbindung zum Server herstellen möchte, aber in der nächsten Schleife muss die serverseitige Seite auf die Serverseite aufgerufen werden. Lesen Sie die Informationen. Client Socket
Java.net.*; Java.io importieren. /*Client gilt für eine Verbindung zur Serverseite* / /*Nach der Verbindung zur Serverseite können Sie Informationen auf die Serverseite ausgeben und Informationen erhalten, die von der Serverseite zurückgegeben wurden, und Informationen zum Ausgabe von Informationen erhalten und die Rückgabeinformationen erhalten. Sowohl das Stream -Eingangs- als auch das Ausgabeprinzip müssen verwendet werden, um die Informationen zu verarbeiten*//*Hier finden Sie die Ausgabe -Ausgabeinformationen für die Ausgabe von OutputStream auf die Serverseite*/ outputStream os = s.getOutputStream (). DataOutputStream dos = neuer DataOutputStream (OS); Thread.Sleep (30000);/*Der Client schläft 30 Sekunden lang, bevor sie Informationen an den Server senden*/ dos.writeutf ("Hallo Server!"); }}Der Client fordert eine Verbindung zum Server über Port 6666 an. Nachdem der Server die Verbindungsanforderung des Clients angenommen hat, installiert er einen Socket auf dem Server und verbindet diesen Socket mit dem Socket des Clients, damit der Server mit dem Client kommunizieren kann. Wenn ein anderer Client eine Verbindung beantragt, wird nach dem Akzeptieren des Servers ein anderer Socket installiert, um eine Verbindung zum Socket des Clients herzustellen.