zoukankan      html  css  js  c++  java
  • java 网络编程(四)----UDP进阶篇聊天小程序

    设计要求:单线程模式,客户端只发送数据,数据的来源为键盘录入,服务器端只接收数据,当客户端发送886的时候,客户端和服务器端都退出。

    1. 发送端:

    public class Send implements Runnable{private DatagramSocket ds;public Send(DatagramSocket ds)

    {
          this.ds= ds;
    }
    @Override

    try {

    BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
    String lines = null;

    while((lines=bufr.readLine())!=null)
    {

    byte[] buf=lines.getBytes();
    DatagramPacket dp= new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.5.255"),10001);
    ds.send(dp);

    if("886".equals(lines))
    break;
    }
    ds.close();
    } catch (Exception e) {
    }
    }}

    2. 接收端:

    public class Reci implements Runnable {

    private DatagramSocket ds;

    public Reci(DatagramSocket ds)
    {
    this.ds= ds;
    }

    @Override
    public void run() {
    // TODO Auto-generated method stub
    try {
    while(true){

    byte[] buf=new byte[1024];
    DatagramPacket dp = new DatagramPacket(buf, buf.length);

    ds.receive(dp);

    String ipString=dp.getAddress().getHostAddress();
    int port =dp.getPort();
    String data= new String(dp.getData(),0,dp.getLength());

    System.out.println("ip :"+ipString+"port :"+port+"data :"+data);

    if(data.equals("886"))
    {
    System.out.println(ipString+"...退出聊天室");
    }
    }
    } catch (IOException e) {

    }
    }

    }

    3. 单线程进程启动

    public class ChatMultiThreadDemo {

    public static void main(String[] args) throws SocketException {

    DatagramSocket send = new DatagramSocket();
    DatagramSocket reci = new DatagramSocket(10001);

    new Thread(new Send(send)).start();
    new Thread(new Reci(reci)).start();


    }
    }

  • 相关阅读:
    java----session
    js封装成插件-------Canvas统计图插件编写
    js封装成插件
    js学习--变量作用域和作用域链
    学习js函数--自执行函数
    学习js函数--函数定义
    footer不满一屏时在最底部,超出一屏时在页面最下部
    ios 点击区域阴影问题
    提交表单后数据返回时间过长
    点击显示video
  • 原文地址:https://www.cnblogs.com/loleina/p/5174959.html
Copyright © 2011-2022 走看看