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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fmi110 高级黑马   /  2015-8-12 09:36  /  167 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

网络编程
  1. /*
  2. 多线程聊天模式:
  3. */
  4. import java.io.*;
  5. import java.net.*;

  6. class Send implements Runnable //发送端
  7. {
  8.         private DatagramSocket ds;
  9.         Send(DatagramSocket ds)
  10.         {
  11.                 this.ds = ds;
  12.         }
  13.         public void run()
  14.         {
  15.                 try
  16.                 {
  17.                         String line = null;
  18.                         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  19.                         while((line = bufr.readLine())!=null)
  20.                         {
  21.                                 if("886".equals(line))
  22.                                         break; //退出
  23.                                
  24.                                 byte[] buf = line.getBytes();

  25.                                 DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.31.248"),10002);//封装数据
  26.                                 System.out.println("消息已发出。。。");
  27.                                 ds.send(dp);
  28.                         }
  29.                        
  30.                        
  31.                 }
  32.                 catch (Exception e)
  33.                 {
  34.                         System.out.println("发送失败");
  35.                         System.out.println(e.toString());
  36.                 }
  37.                 finally
  38.                 {
  39.                         ds.close();
  40.                 }
  41.         }
  42. }

  43. class Receive implements Runnable
  44. {
  45.         private DatagramSocket ds;
  46.         Receive(DatagramSocket ds)
  47.         {
  48.                 this.ds = ds;
  49.         }
  50.         public void run()
  51.         {
  52.                 try
  53.                 {
  54.                         while(true)
  55.                         {
  56.                                 byte[] buf = new byte[1024];
  57.                                 DatagramPacket dp = new DatagramPacket(buf,buf.length);
  58.                                 ds.receive(dp);//接收

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

  60.                                 String text = new String(dp.getData(),0,dp.getLength());

  61.                                 int port = dp.getPort();
  62.                                 System.out.println("接收到新消息:");
  63.                                 System.out.println(ip+"_"+"port_"+port+": "+text);

  64.                         }
  65.                        
  66.                 }
  67.                 catch (Exception e)
  68.                 {
  69.                         System.out.println("发送失败");
  70.                         System.out.println(e.toString());
  71.                 }
  72.         }
  73. }
  74. class  UdpCommunicationDemo
  75. {
  76.         public static void main(String[] args) throws Exception
  77.         {
  78.                 DatagramSocket dsSend = new DatagramSocket(8888);
  79.                 DatagramSocket dsRec = new DatagramSocket(10002);
  80.                 new Thread(new Send(dsSend)).start();
  81.                 new Thread(new Receive(dsRec)).start();
  82.                 System.out.println("Hello World!");
  83.         }
  84. }
复制代码

0 个回复

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