黑马程序员技术交流社区

标题: java版本的局域网聊天工具 [打印本页]

作者: anywayDo    时间: 2015-5-10 23:12
标题: java版本的局域网聊天工具
本帖最后由 anywayDo 于 2015-5-10 23:14 编辑
  1. import java.io.*;
  2. import java.net.*;
  3. class  Send implements Runnable
  4. {
  5.         private DatagramSocket ds;
  6.         public Send(DatagramSocket ds)
  7.         {
  8.                 this.ds=ds;
  9.         }
  10.         public void run()
  11.         {
  12.                 BufferedReader bfr=null;
  13.                 try
  14.                 {
  15.                         bfr=new BufferedReader(new InputStreamReader(System.in));
  16.                         String line=null;
  17.                         while((line=bfr.readLine())!=null)
  18.                         {
  19.                                 if(line.equals("over"))
  20.                                         break;
  21.                                 byte[] buf=line.getBytes();
  22.                                 DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.255"),10004);
  23.                                 ds.send(dp);
  24.                         }
  25.                 }
  26.                 catch (Exception e)
  27.                 {
  28.                         throw new RuntimeException("发送端失败");
  29.                 }
  30.                 try
  31.                 {
  32.                         if(bfr!=null)
  33.                                 bfr.close();
  34.                 }
  35.                 catch (IOException e)
  36.                 {
  37.                         throw new RuntimeException("读取数据失败");
  38.                 }
  39.                
  40.                 ds.close();
  41.         }
  42.         
  43. }

  44. class Rece implements Runnable
  45. {
  46.         private DatagramSocket ds;
  47.         public Rece(DatagramSocket ds)
  48.         {
  49.                 this.ds=ds;
  50.         }
  51.         public void run()
  52.         {
  53.                 try
  54.                 {
  55.                         while(true)
  56.                         {
  57.                                 byte[] buf=new byte[1024];
  58.                                 DatagramPacket dp=new DatagramPacket(buf,buf.length);
  59.                                 ds.receive(dp);
  60.                                 String ip=dp.getAddress().getHostAddress();
  61.                                 String data=new String(dp.getData(),0,dp.getLength());
  62.                                 System.out.println(ip+"::"+data);
  63.                         }
  64.                 }
  65.                 catch (Exception e)
  66.                 {
  67.                         throw new RuntimeException("接收端失败");
  68.                 }
  69.         }
  70.         

  71. }
  72. class ChatDemo
  73. {
  74.         public static void main(String[] args)throws Exception
  75.         {
  76.                 DatagramSocket Sendds=new DatagramSocket();
  77.                 DatagramSocket Receds=new DatagramSocket(10004);
  78.                 Send s=new Send(Sendds);
  79.                 Rece r=new Rece(Receds);

  80.                 Thread t1=new Thread(s);
  81.                 Thread t2=new Thread(r);

  82.                 t1.start();
  83.                 t2.start();

  84.         }
  85. }
复制代码
这样一段程序, 放在同一个局域网内的两台电脑上,运行后,就可以实现两台电脑间的信息传递。How amazing!

腾讯就是用一个小小的聊天工具了,开创了一个时代。。如果,脑洞再开大点,每个程序员都有改变世界的潜质。。
走在成为程序员的路上,心潮澎湃呀。。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2