一. 服务端代码 :
import Java.io.*; Java.net importieren.*; öffentliche Klasse uDpechoServer {private statische endgültige int echomax = 255; // Maximale Größe des Echo -Datagramms public static void main (String [] args) löscht ioException {int Servport = 5500; // Server -Port -Datagramsocket -Socket = new DatagramSocket (Servport); DataGrampacket packet = new Datagrampacket (neues Byte [Echomax], Echomax); while (true) {// für immer laufen, empfangen und wiederholt Datagramme Socket.receive (Paket); // Paket von Client system.out.println empfangen ("Client bei" + packet.getAddress (). Gethostaddress () + "auf Port" + packet.getPort ()); Socket.Send (Paket); // das gleiche Paket zurück an client paket.setLength (echomax) senden; // Länge zurücksetzen, um zu vermeiden, dass Puffer}/ * nicht erreicht ist */}}二. 客户端代码 :
Java.net importieren.*; import Java.io.*; öffentliche Klasse udpechoclienttimeout {private statische endgültige int timeout = 3000; // Timeout (Millisekunden) Private statische endgültige int maxtries = 5; // Maximale Wiederholungen öffentliche statische void main (String [] args) löscht IOException {inetaddress serveraddress = inetaddress.getByName ("127.0.0.1") aus; // Serveradresse int Servport = 5500; // Server -Port // Die Argument -Zeichenfolge unter Verwendung des Standard -Codierungs -Byte [] byTestosend = "Hi, World" .getBytes () in Bytes konvertieren; Datagramsocket socket = new DatagramSocket (); Socket.Setsotimeout (Timeout); // maximale Empfangssperrzeit (Millisekunden) // Senden von Paket DataGrampacket sendpacket = new Datagrampacket (byTestosend, byTestosend.length, Serveraddress, Servport); DataGrampacket recemepacket = // Paket neuer Datagrampacket (New Byte [byTestosend.length], byTestosend.length); int tries = 0; // Pakete können verloren gehen, daher müssen wir es weiter versuchen, Boolesche empfangene Response = False; do {socket.send (sendpacket); // die echo string try {socket.receive (recemepacket); // Versuch Echo Antwortempfang if (! Recemepacket.getAddress (). Equals (ServerAddress)) {// check // Quelle neue IOException ("empfangene Paket von einer unbekannten Quelle"); } empfangeneResponse = true; } catch (InterruptedioException e) {// Wir haben nichts mit Versuchen erhalten += 1; System.out.println ("Timed Out", + (Maxtries - Versuche) + "Mehr Versuche ..."); }} while ((! empfangeneResponse) && (Versuche <maxtries)); if (empfangte } else {System.out.println ("Keine Antwort - aufgeben"); } socket.close (); }}上述代码的 udp 服务端是单线程 , 一次只能服务一个客户端。 一次只能服务一个客户端。
以上就是本文的全部内容 , 查看更多 Java 的语法 , : : 《《Denken in Java 中文手册》、《 Jdk 1.7 参考手册官方英文版》、《 JDK 1.6 API Java 中文参考手册》、《 JDK 1.5 API Java 中文参考手册》 , 也希望大家多多支持武林网。 也希望大家多多支持武林网。