Ausführliche Erläuterung von Beispielen zur Netzwerkkommunikation
Ein Überblick
1. Netzwerkmodell
OSI( Das Open System Interconnection-Modell (Open System Interconnection) ist eine Zusammenfassung der Netzwerksystemstruktur. Das Netzwerk ist in sieben Schichten unterteilt: Anwendungsschicht, Präsentationsschicht, Sitzungsschicht, Transportschicht, Netzwerkschicht und Daten Link. Schicht, physikalische Schicht.
2. IP-Protokoll
Das Netzwerkschichtprotokoll legt die Regeln zum Identifizieren und Finden von Computern im Internet fest.
3. TCP-Protokoll
Ein Datenübertragungsprotokoll auf der Transportschicht. Die Verbindung wird zuvor durch einen „Drei-Wege-Handshake“ hergestellt Die Datenübertragung und das anschließende Senden von Daten eignen sich für Situationen, die eine hohe Datengenauigkeit erfordern. Da vor der Datenübertragung eine Verbindung hergestellt werden muss, ist die Übertragungsgeschwindigkeit langsam.
4. UDP-Protokoll
Ein Datenübertragungsprotokoll auf der Transportschicht. Es ist nicht erforderlich, vor der Datenübertragung eine Verbindung herzustellen eignet sich für eine genaue Datenverarbeitung. Wenn die sexuellen Anforderungen nicht hoch sind, erfolgt die Datenübertragung im Allgemeinen schneller. Chat-Informationen werden über dieses Protokoll übertragen.
5. HTTP-Protokoll
Das HTTP-Protokoll ist ein Protokoll der Anwendungsschicht, das eine Schnittstelle für Betriebssysteme oder Netzwerkanwendungen für den Zugriff auf Netzwerkdienste bereitstellt .
6. Port-Port
Wenn die Daten den Computer erreichen, wird jedem ein ganzzahliger Wert zugewiesen, um die Zielanwendung zu finden Anwendung. Mit einem Wert von 0-65535 ist dieser ganzzahlige Wert der Port . Es ist ersichtlich, dass der Port ein Anwendungsprogramm auf dem Computer darstellt und sicherstellt, dass die Daten das vorgegebene Programm genau erreichen. Ein Port kann nicht von mehreren Anwendungen gleichzeitig belegt werden. Nach dem Ende einer Anwendung wird der Port nicht sofort freigegeben. Es gibt eine Speicherverzögerungszeit, die im Allgemeinen sehr kurz ist. Ports 0-1023 sind bereits von Systemanwendungen und anderen Anwendungen belegt. Vermeiden Sie die Verwendung von Ports in diesem Bereich während des Programmdesigns.
7. Socket Socket
Socket ist ein Tool zum Senden und Empfangen von Daten. Der Absender sendet Daten über den Socket, und der Empfänger lauscht über den Socket auf den angegebenen Port, um Daten zu erhalten.
8. Unabhängig davon, ob das TCP-Protokoll oder das UDP-Protokoll verwendet wird, können Daten nur in Byteform gesendet werden.
2 TCP-Programmierung
1. Durch das Schließen des über den Socket erhaltenen Eingabe- oder Ausgabestreams wird der Socket geschlossen.
2. Der über den Socket erhaltene Ausgabestream muss nach Abschluss der Ausgabe geschlossen werden, andernfalls wird der entsprechende Eingabestream am anderen Ende blockiert. Da beim Schließen des Ausgabestreams über das Ausgabestream-Objekt gleichzeitig das Socket-Objekt schließt, kann das andere Ende das dem Socket entsprechende Objekt nicht abrufen. Daher ist das Der Ausgabestream kann nur über die Methode „shutdownOutput“ unter dem Socket geschlossen werden.
3. Allgemeine Schritte für den Client:
Socket socket=new Socket(String host,int port);//创建客户端Socket,发送与接收数据,需要指明服务器IP与端口OutputStream os=socket.getOutputStream();//获取输出流,向服务器发送数据.......... os.flush(); socket.shutdownOutput();//关闭输出流,防止服务器端阻塞InputStream is=socket.getInputStream();//获取输入流,输入流包含服务器的反馈信息............ socket.close();//关闭socket,同时关闭输入与输出流
4. Allgemeine Schritte für den Server:
ServerSocket server=new ServerSocket(int port);//建立服务器端套接字,指定监听端口Socket socket=server.accept();//获取访问客户端的Socket,阻塞线程InputStream is=socket.getInputStream();//获取输入流,其中包含客户端发送的数据............. OutputStream os=socket.getOutputStream();//获取输出流,向客户端反馈信息.............. os.flush(); os.shutdownOutput(); server.close();
5.Demo
Kunde
package com.javase.networkCommunication.tcp.demo02;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class ImgClient {public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket("192.168.146.1", 10007); FileInputStream is = new FileInputStream("Files/1.jpg"); OutputStream os = socket.getOutputStream();byte[] buf = new byte[1024];// 先将数据读取到缓冲区,比频繁的从硬盘读取速度快int length = 0;while ((length = is.read(buf)) != -1) { os.write(buf, 0, length); } os.flush(); socket.shutdownOutput();// 如果输出流不关闭,服务端对应的输入流会阻塞InputStream replyIs = socket.getInputStream();//不会阻塞线程byte[] buf01 = new byte[1024];int length01 = replyIs.read(buf01); String reply = new String(buf01, 0, length01); System.out.println(reply); is.close(); socket.close(); } }
Server
package com.javase.networkCommunication.tcp.demo02;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import org.junit.Test;public class ImgServer { @Testpublic void test01() throws IOException { ServerSocket serverSocket = new ServerSocket(10007); Socket socket = serverSocket.accept();// 线程阻塞,等待请求System.out.println("hostAddress=" + socket.getInetAddress().getHostAddress()); InputStream is = socket.getInputStream(); FileOutputStream os = new FileOutputStream("Files/2.jpg"); System.out.println(1);byte[] buf = new byte[1024];int length = 0; System.out.println(2);int count = 3;while ((length = is.read(buf)) != -1) { os.write(buf, 0, length); System.out.println(count++); } os.flush(); os.close(); System.out.println("图片上传结束");/*PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.write("success");*/OutputStream out = socket.getOutputStream(); out.write("success".getBytes()); out.flush(); socket.shutdownOutput(); System.out.println("响应数据已发出"); serverSocket.close(); } }
Drei UDP-Programmierung
1. Datenverarbeitungsmethode
Das UDP-Protokoll sendet Daten in Form von Paketen mit einem Maximalwert von 64.000 pro Paket.
2. Allgemeine Schritte zum Senden von Daten:
DatagramSocket socket=new DatagramSocket();//创建数据报套接字用于发送数据//DUP协议采用数据包分段发送数据,因此需要建立数据包,在数据包中指明目的地IP与端口DatagramPacket packet= DatagramPacket(byte buf[], int offset, int length,InetAddress address, int port); socket.send(packet);
3. Allgemeine Schritte zum Empfangen von Daten:
DatagramSocket socket=new DatagramSocket(int port);//创建监听指定端口的数据报套接字DatagramPacket packet=new DatagramPacket(byte buf[], int length); socket.receive(packet);
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen zur Netzwerkkommunikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie kann die Netzwerkkommunikation bei der C++-Big-Data-Entwicklung optimiert werden? Einführung: Im heutigen Big-Data-Zeitalter spielt die Netzwerkkommunikation eine entscheidende Rolle bei der Datenverarbeitung. Für Entwickler, die C++ für die Big-Data-Entwicklung verwenden, ist die Optimierung der Leistung der Netzwerkkommunikation der Schlüssel zur Verbesserung der Datenverarbeitungseffizienz. In diesem Artikel werden einige Methoden zur Optimierung der Netzwerkkommunikation in der C++-Big-Data-Entwicklung anhand von Codebeispielen vorgestellt. 1. Verwenden Sie eine leistungsstarke Netzwerkbibliothek. Bei der C++-Big-Data-Entwicklung ist die Auswahl einer leistungsstarken Netzwerkbibliothek der erste Schritt zur Optimierung der Netzwerkkommunikationsleistung. Diese Bibliotheken sind normalerweise

Überblick darüber, wie eine Netzwerkzeitsynchronisierungskommunikation über PHP- und NTP-Protokolle erreicht wird: Network Time Protocol (kurz NTP) ist ein Protokoll, das zur Synchronisierung der Computersystemzeit verwendet wird. Bei Netzwerkanwendungen ist eine genaue Zeitsynchronisierung sehr wichtig, um den normalen Betrieb von Netzwerkdiensten sicherzustellen. In PHP kann die Netzwerkzeitsynchronisierung durch die Kommunikation mit dem NTP-Protokoll erreicht werden. In diesem Artikel wird erläutert, wie Sie PHP-Code für die Kommunikation mit einem NTP-Server verwenden, um eine genaue Netzwerkzeit zu erhalten. Schritt

So lösen Sie: Java-Netzwerkkommunikationsfehler: Verbindungszeitüberschreitung Bei der Kommunikation mit dem Java-Netzwerk tritt häufig ein Verbindungszeitüberschreitungsfehler auf. Verbindungszeitlimit bedeutet, dass beim Aufbau einer Netzwerkverbindung der Handshake-Vorgang zwischen Client und Server länger dauert als das voreingestellte Zeitlimit. Bei der Netzwerkkommunikation können Verbindungs-Timeout-Fehler durch mehrere Faktoren verursacht werden, wie z. B. Netzwerkverzögerung, langsame Serverantwort usw. In diesem Artikel wird beschrieben, wie Verbindungs-Timeout-Fehler bei der Java-Netzwerkkommunikation behoben werden, und es wird ein Beispielcode bereitgestellt. Überprüfen Sie zunächst die Netzwerkverbindung

Nutzen Sie Swoole-Entwicklungsfunktionen, um eine Netzwerkkommunikation mit hoher Parallelität zu erreichen. Zusammenfassung: Swoole ist ein leistungsstarkes Netzwerkkommunikations-Framework, das auf der PHP-Sprache basiert. Es verfügt über Funktionen wie Coroutinen, asynchrone E/A und Multiprozesse und eignet sich für die Entwicklung von Hochgeschwindigkeitsnetzwerken. Parallelität von Netzwerkanwendungen. In diesem Artikel wird die Verwendung von Swoole zur Entwicklung von Netzwerkkommunikationsfunktionen mit hoher Parallelität vorgestellt und einige Codebeispiele gegeben. Einleitung Mit der rasanten Entwicklung des Internets werden die Anforderungen an die Netzwerkkommunikation immer höher, insbesondere in Szenarien mit hoher Parallelität. Bei der herkömmlichen PHP-Entwicklung sind die Fähigkeiten zur gleichzeitigen Verarbeitung schwach

Für den Umgang mit Netzwerkkommunikationsproblemen in C# sind spezifische Codebeispiele erforderlich. Netzwerkkommunikation ist eine sehr wichtige Technologie in der modernen Programmierung. Unabhängig davon, ob wir Netzwerkanwendungen, Online-Spiele oder Remote-Dateninteraktionen entwickeln, müssen wir alle verstehen, wie wir mit Netzwerkkommunikationsproblemen in C# umgehen. In diesem Artikel werden einige gängige Methoden zur Handhabung der Netzwerkkommunikation in C# vorgestellt und entsprechende Codebeispiele bereitgestellt. TCP/IP Sockets TCP/IP Sockets ist ein zuverlässiges, verbindungsorientiertes Netzwerkkommunikationsprotokoll. In C# können wir System verwenden.

Die Rolle der Subnetzmaske und ihr Einfluss auf die Effizienz der Netzwerkkommunikation. Einführung: Mit der Popularität des Internets ist die Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der modernen Gesellschaft geworden. Gleichzeitig ist auch die Effizienz der Netzwerkkommunikation zu einem Schwerpunkt der Aufmerksamkeit der Menschen geworden. Beim Aufbau und der Verwaltung eines Netzwerks ist die Subnetzmaske eine wichtige und grundlegende Konfigurationsoption, die eine Schlüsselrolle bei der Netzwerkkommunikation spielt. In diesem Artikel werden die Rolle der Subnetzmaske und ihre Auswirkungen auf die Effizienz der Netzwerkkommunikation vorgestellt. 1. Definition und Funktion der Subnetzmaske Subnetzmaske (Subnetzmaske)

So lösen Sie: Java-Netzwerkkommunikationsfehler: URL konnte nicht analysiert werden. Bei der Kommunikation über Java-Netzwerke treten häufig Fehler auf, die dazu führen, dass die URL nicht analysiert werden kann. Dieser Fehler tritt normalerweise beim Parsen der URL auf und das gültige URL-Format kann nicht korrekt analysiert werden. Bevor wir dieses Problem lösen können, müssen wir einige grundlegende URL-Konzepte und verwandte Toolklassen verstehen, die von Java bereitgestellt werden. URL ist die Abkürzung für Uniform Resource Locator und dient zur Identifizierung des Standorts von Ressourcen im Netzwerk. Eine URL besteht normalerweise aus Protokoll, Hostname, Portnummer, Pfad und Abfrage

So erreichen Sie mithilfe von Coroutinen eine effiziente Netzwerkkommunikation in der GO-Sprache. Einführung: Mit der rasanten Entwicklung des Internets ist die Netzwerkkommunikation immer wichtiger geworden. In der modernen Entwicklung verfügt die Go-Sprache als gleichzeitige Programmiersprache über leistungsstarke Coroutine-Funktionen, die die Netzwerkkommunikation effizienter machen. Ziel dieses Artikels ist es, die Verwendung von Coroutinen vorzustellen, um eine effiziente Netzwerkkommunikation in der Go-Sprache zu erreichen, einschließlich allgemeiner Server- und Client-Programmierung. 1. Grundlegende Konzepte Bevor wir diskutieren, wie man Coroutinen verwendet, um eine effiziente Netzwerkkommunikation zu erreichen, müssen wir zunächst einige grundlegende Konzepte verstehen, einschließlich der folgenden
