测试类:
- package com.kxg_05;
- import java.io.IOException;
- import java.net.DatagramSocket;
- public class ChatRoom {
- public static void main(String[] args) throws IOException {
- DatagramSocket dsSend = new DatagramSocket();
- DatagramSocket dsReceive = new DatagramSocket(48264);
- SendThread st = new SendThread(dsSend);
- ReceiveThread rt = new ReceiveThread(dsReceive);
- Thread t1 = new Thread(st);
- Thread t2 = new Thread(rt);
- t1.start();
- t2.start();
- }
- }
复制代码 发送端类:
- package com.kxg_05;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- import java.util.Scanner;
- public class SendThread implements Runnable {
- private DatagramSocket ds;
- public SendThread(DatagramSocket ds) {
- this.ds = ds;
- }
- @Override
- public void run() {
- try {
- Scanner sc = new Scanner(System.in);
- String s = null;
- while ((s = sc.nextLine()) != null) {
- byte[] bys = s.getBytes();
- DatagramPacket dp = new DatagramPacket(bys, bys.length,
- InetAddress.getByName("10.164.22.254"), 48264);
- ds.send(dp);
- if (s.equals("我下了")) {
- break;
- }
- }
- ds.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
复制代码
接收端类:
- package com.kxg_05;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- public class ReceiveThread implements Runnable {
- private DatagramSocket ds;
- public ReceiveThread(DatagramSocket ds) {
- this.ds = ds;
- }
- @Override
- public void run() {
- try {
- while (true) {
- byte[] bys = new byte[1024];
- DatagramPacket dp = new DatagramPacket(bys, bys.length);
- ds.receive(dp);
- String ip = dp.getAddress().getHostAddress();
- String s = new String(dp.getData(), 0, dp.getLength());
- System.out.println(ip + ":" + s);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
复制代码
|
|