黑马程序员技术交流社区

标题: UDP的聊天程序 [打印本页]

作者: sven556677    时间: 2015-8-21 16:17
标题: UDP的聊天程序
打的冲忙,没怎么加注释
  1. package com.cn.test;
  2. import java.io.*;
  3. import java.net.*;

  4. /**
  5. * 聊天程序,一个线程负责发送,一个线程负责接收
  6. * @author Administrator
  7. *
  8. */
  9. class RcvThread implements Runnable{
  10.         private DatagramSocket ds;
  11.         public RcvThread (DatagramSocket ds){
  12.                 this.ds=ds;
  13.         }
  14.         public void run() {
  15.                 try {
  16.                         while(true){
  17.                                
  18.                                 byte[] buf=new byte[1024];
  19.                                 DatagramPacket dp=new DatagramPacket(buf, buf.length);
  20.                                 ds.receive(dp);
  21.                                 String content=new String(dp.getData(),0,dp.getLength());
  22.                                 String ip=dp.getAddress().getHostAddress();
  23.                                 int add=dp.getPort();
  24.                                 System.out.println("内容"+content+"地址"+ip+"端口"+add);
  25.                         }
  26.                        
  27.                 } catch (Exception e) {
  28.                         // TODO 自动生成的 catch 块
  29.                         e.printStackTrace();
  30.                 }
  31.         }
  32.        
  33. }
  34. class SendThread implements Runnable{
  35.         DatagramSocket ds;
  36.         public SendThread(DatagramSocket ds){
  37.                 this.ds=ds;
  38.         }
  39.         public void run(){
  40.                 try {
  41.                         DatagramSocket ds=new DatagramSocket();
  42.                         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  43.                         String line=null;
  44.                         while((line=br.readLine())!=null){
  45.                                 byte [] buf=line.getBytes();
  46.                                 DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.4"),5244);
  47.                                 ds.send(dp);
  48.                                 if("886".equals(line))break;
  49.                         }
  50.                         ds.close();
  51.                 } catch (Exception e) {
  52.                         // TODO 自动生成的 catch 块
  53.                         e.printStackTrace();
  54.                 }
  55.                
  56.         }
  57. }
  58. public class UDPChater {

  59.         public static void main(String[] args) throws SocketException {
  60.                 DatagramSocket rds=new DatagramSocket(5244);
  61.                 DatagramSocket sds=new DatagramSocket();
  62.                 RcvThread rt=new RcvThread(rds);
  63.                 SendThread st=new SendThread(sds);
  64.                 new Thread(rt).start();
  65.                 new Thread(st).start();
  66.         }

  67. }
复制代码








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