Berikut adalah dua orang yang berkomunikasi. Itu dinilai berdasarkan IP
Copy kode kodenya sebagai berikut:
impor java.io.BufferedReader;
impor java.io.IOException;
impor java.io.InputStreamReader;
impor java.net.DatagramPacket;
impor java.net.DatagramSocket;
impor java.net.InetAddress;
impor java.net.SocketException;
impor java.net.UnknownHostException;
kelas publik Saya {
public static void main(String[] args) melempar IOException {
new ReciveThread().start();//Listener konfigurasi harus ditempatkan di depan
new SendInfo().main(args);
}
}
kelas KirimInfo {
public static void main(String[] args) melempar IOException {
BufferedReader bf = BufferedReader baru(InputStreamReader(Sistem.in) baru);
String str = nol;
Garis string = "";
while ((str = bf.readLine()) != null) {
baris += str;
if (str.sama dengan("ok")) {
kirim(garis);
baris = "";
}
if (str.sama dengan("selamat tinggal")) {
bf.close(); // break harus ditambahkan, jika tidak maka akan terjadi jeda sinyal carriage return;
}
}
}
pengiriman kekosongan statis(String str) {
// Program jaringan UDP
DatagramSocket ds = nol;
DatagramPacket dp = nol;
mencoba {
ds = new DatagramSocket(3000);//Buka nomor port
} tangkapan (SocketException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
mencoba {
byte[] ip = byte baru[] { (byte) 10, 1, 1, (byte) 200 };
dp = DatagramPacket baru(str.getBytes(), str.length(),
InetAddress.getByAddress(ip), 9000);//faso
} tangkapan (UnknownHostException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
mencoba {
ds.kirim(dp);
System.out.println("kirim berhasil");
} tangkapan (IOException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
ds.close();
}
}
kelas ReciveThread memperluas Thread {
menjalankan kekosongan publik() {
sementara (benar) {
DatagramSocket ds = nol;
byte[] buf = byte baru[1024];
DatagramPacket dp = nol;
mencoba {
ds = new DatagramSocket(9000);//Buka portnya
} tangkapan (SocketException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
dp = Paket Datagram baru(buf, 1024);
mencoba {
ds.menerima(dp);
} tangkapan (IOException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
String str = String baru(dp.getData(), 0, dp.getLength()) + "dari"
+ dp.getAddress().getHostAddress() + ":port" + dp.getPort();
Sistem.keluar.println(str);
ds.close();
}
}
}