A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

测试类:
  1. package com.kxg_05;

  2. import java.io.IOException;
  3. import java.net.DatagramSocket;

  4. public class ChatRoom {
  5.         public static void main(String[] args) throws IOException {
  6.                 DatagramSocket dsSend = new DatagramSocket();
  7.                 DatagramSocket dsReceive = new DatagramSocket(48264);

  8.                 SendThread st = new SendThread(dsSend);
  9.                 ReceiveThread rt = new ReceiveThread(dsReceive);

  10.                 Thread t1 = new Thread(st);
  11.                 Thread t2 = new Thread(rt);

  12.                 t1.start();
  13.                 t2.start();
  14.         }
  15. }
复制代码
发送端类:
  1. package com.kxg_05;

  2. import java.io.IOException;
  3. import java.net.DatagramPacket;
  4. import java.net.DatagramSocket;
  5. import java.net.InetAddress;
  6. import java.util.Scanner;

  7. public class SendThread implements Runnable {
  8.         private DatagramSocket ds;

  9.         public SendThread(DatagramSocket ds) {
  10.                 this.ds = ds;
  11.         }

  12.         @Override
  13.         public void run() {
  14.                 try {
  15.                 Scanner sc = new Scanner(System.in);
  16.                 String s = null;
  17.                         while ((s = sc.nextLine()) != null) {
  18.                         byte[] bys = s.getBytes();
  19.                         DatagramPacket dp = new DatagramPacket(bys, bys.length,
  20.                                         InetAddress.getByName("10.164.22.254"), 48264);
  21.                                 ds.send(dp);
  22.                                 if (s.equals("我下了")) {
  23.                                         break;
  24.                                 }
  25.                         }
  26.                         ds.close();
  27.                 } catch (IOException e) {
  28.                         e.printStackTrace();
  29.                 }
  30.         }
  31. }
复制代码

接收端类:
  1. package com.kxg_05;

  2. import java.io.IOException;
  3. import java.net.DatagramPacket;
  4. import java.net.DatagramSocket;

  5. public class ReceiveThread implements Runnable {
  6.         private DatagramSocket ds;

  7.         public ReceiveThread(DatagramSocket ds) {
  8.                 this.ds = ds;
  9.         }

  10.         @Override
  11.         public void run() {
  12.                 try {
  13.                         while (true) {
  14.                                 byte[] bys = new byte[1024];

  15.                                 DatagramPacket dp = new DatagramPacket(bys, bys.length);

  16.                                 ds.receive(dp);

  17.                                 String ip = dp.getAddress().getHostAddress();

  18.                                 String s = new String(dp.getData(), 0, dp.getLength());

  19.                                 System.out.println(ip + ":" + s);
  20.                         }
  21.                 } catch (IOException e) {
  22.                         e.printStackTrace();
  23.                 }
  24.         }
  25. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马