1. Sockel
Der Netzwerktreiber stellt eine Schnittstelle und einen Mechanismus zur Anwendungsprogrammierung bereit, der mit einer Port-Terminal-Anwendung verglichen werden kann, solange die Ware hier platziert wird wenn die Lieferung der Ware abgeschlossen ist. Es wird in der Anwendung erstellt, stellt über einen Bindungsmechanismus eine Beziehung zum Treiber her und teilt sich selbst die entsprechende IP und den entsprechenden Port mit.
Socket ist eine Netzwerkprogrammierklasse in Java, die sich im java.net-Paket befindet.
---- DatagramSocket // Wird für die UDP-Kommunikation verwendet
---- ServerSocket // Wird für die TCP-Kommunikation verwendet, wird auf der Serverseite verwendet
---- Socket //Server und Client für TCP-Kommunikation
2. UDP-Netzwerkprogramm
InetAddress-Klasse repräsentiert die Internet Protocol (IP)-Adresse
// static InetAddress getLocalHost() throws UnknownHostException Gibt den lokalen Host zurück
//static InetAddress getByName(String host) Bestimmt die IP-Adresse des Hosts anhand des Hostnamens. Der Hostname kann der Maschinenname (z. B. „java.sun.com“) oder der Text seiner IP-Adresse sein. Darstellungsform
static void ipDemo() throws UnknownHostException{ InetAddress netAddr=InetAddress.getLocalHost(); //取得本地电脑的一些信息System.out.println(netAddr.toString()); System.out.println(netAddr.getHostAddress()); System.out.println(netAddr.getHostName()); //取得其他电脑的信息InetAddress netAddr2=InetAddress.getByName("DELL-PC"); //这里也可以传IP地址System.out.println(netAddr2.getHostAddress()); //169.254.170.71System.out.println(netAddr2.getHostName()); //DELL-PC //取得百度的地址InetAddress [] ipList=InetAddress.getAllByName("www.baidu.com");for(InetAddress addr:ipList){ System.out.println(addr.toString()); } }
3. UDP senden und empfangen DatagramSocket, DatagramPacket
//Beispiel 1 Das einfachste Senden und EmpfangenSender == So importieren Sie das java.net-Paket Daten über UDP senden: 1) UDPSocket-Dienst einrichten 2) Daten bereitstellen und Daten werden in Daten gekapselt packet DatagramPacket (byte[] buf, int length, InetAddress address, int port) //Es gibt mehrere Konstruktoren3) Daten über den Socket-Dienst senden4 ) Schließen Sie die Ressource
import java.net.*;class Sender4{//DatagramPacket (byte[] buf, int length, InetAddress address, int port) public static void main(String [] args) throws Exception { byte [] buff="hello cat".getBytes(); DatagramSocket socket=new DatagramSocket(); DatagramPacket packet=new DatagramPacket(buff,buff.length,InetAddress.getByName("192.168.0.103"),8888); socket.send(packet); socket.close(); System.out.println("ok"); } }
import java.net.*;class Receive4 {public static void main(String [] args) throws Exception { DatagramSocket socket=new DatagramSocket(8888); //别忘了端口号byte[] buff=new byte[1024] ; DatagramPacket packet=new DatagramPacket(buff,buff.length); socket.receive(packet); String senderIp=packet.getAddress().getHostAddress(); String senderData=new String(packet.getData(),0,packet.getLength());int senderPort=packet.getPort(); System.out.println(senderIp+"---"+senderData+"---"+senderPort); socket.close(); } }
import java.net.*;import java.io.*;class NewSender{public static void main(String [] args) throws Exception { System.out.println("发送端启动了"); DatagramSocket socket=new DatagramSocket(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //包装键盘输入流String str=null;while((str=br.readLine())!=null){byte [] buff=str.getBytes(); DatagramPacket packet=new DatagramPacket(buff,buff.length,InetAddress.getByName("127.0.0.1"),9000); socket.send(packet); } br.close(); socket.close(); } }
import java.net.*;class NewReceiver{public static void main(String [] args) throws Exception { DatagramSocket socket=new DatagramSocket(9000); System.out.println("接收端启动了"); while(true){ byte [] buff=new byte[1024] ; DatagramPacket packet=new DatagramPacket(buff,buff.length); socket.receive(packet); String senderIp=packet.getAddress().getHostAddress(); int sendPort=packet.getPort(); String msg= new String(packet.getData(),0,packet.getLength()); System.out.println(senderIp+":"+sendPort+":"+msg); } } }
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für die Java-Netzwerkprogrammierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!