Hier kommunizieren zwei Personen. Es wird anhand der IP beurteilt. Es gibt kein Problem dazwischen
Kopieren Sie den Codecode wie folgt:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
öffentliche Klasse Ich {
public static void main(String[] args) löst eine IOException {
new ReciveThread().start();//Der Konfigurations-Listener muss vorne platziert werden
new SendInfo().main(args);
}
}
Klasse SendInfo {
public static void main(String[] args) löst eine IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = null;
Stringlines = "";
while ((str = bf.readLine()) != null) {
Zeilen += str;
if (str.equals("ok")) {
send(lines);
Zeilen = "";
}
if (str.equals("bye")) {
bf.close(); // Pause muss hinzugefügt werden, sonst kommt es zu einer Unterbrechung des Wagenrücklaufsignals;
}
}
}
static void send(String str) {
// UDP-Netzwerkprogramm
DatagramSocket ds = null;
DatagramPacket dp = null;
versuchen {
ds = new DatagramSocket(3000);//Öffnen Sie die Portnummer
} Catch (SocketException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
versuchen {
byte[] ip = neues byte[] { (byte) 10, 1, 1, (byte) 200 };
dp = new DatagramPacket(str.getBytes(), str.length(),
InetAddress.getByAddress(ip), 9000);//faso
} Catch (UnknownHostException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
versuchen {
ds.send(dp);
System.out.println("send success");
} Catch (IOException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
ds.close();
}
}
Klasse ReciveThread erweitert Thread {
public void run() {
while (wahr) {
DatagramSocket ds = null;
byte[] buf = neues Byte[1024];
DatagramPacket dp = null;
versuchen {
ds = new DatagramSocket(9000);//Öffnen Sie den Port
} Catch (SocketException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
dp = neues DatagramPacket(buf, 1024);
versuchen {
ds.receive(dp);
} Catch (IOException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
String str = new String(dp.getData(), 0, dp.getLength()) + „from“
+ dp.getAddress().getHostAddress() + „:port“ + dp.getPort();
System.out.println(str);
ds.close();
}
}
}