• java实现UDP聊天---转载


    import java.io.*;
    import java.net.*;
    class Send implements Runnable
    {
    private DatagramSocket ds;
    public Send (DatagramSocket ds)
    {
    this.ds = ds;
    }
    public void run()
    {
    try
    {
    BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
    String line = null;
    while((line = bufr.readLine())!=null)
    {
    if("bye".equals(line))
    break;
    byte[] buf = line.getBytes();
    DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("IP地址"),4353);
    ds.send(dp);
    }
    }
    catch(Exception e)
    {
    throw new RuntimeException("发送失败");
    }
    }
    }
    class Rece implements Runnable
    {
    private DatagramSocket ds;
    public Rece (DatagramSocket ds)
    {
    this.ds = ds;
    }
    public void run()
    {
    try
    {
    while(true)
    {
    byte[] buf = new byte[1024];
    DatagramPacket dp = new DatagramPacket(buf,buf.length);
    ds.receive(dp);
    String ip = dp.getAddress().getHostAddress();
    String data = new String(dp.getData(),0,dp.getLength());
    System.out.println(ip+":::"+data);
    }
    }
    catch(Exception e)
    {
    throw new RuntimeException("接收失败");
    }
    }
    }
    class ChatTest
    {
    public static void main(String[] args) throws Exception
    {
    DatagramSocket sendSocket = new DatagramSocket();
    DatagramSocket receSocket = new DatagramSocket(4353);
    new Thread(new Send(sendSocket)).start();
    new Thread(new Rece(receSocket)).start();
    }
    }
  • 相关阅读:
    Android Activity与Service的交互方式
    Android Service和Thread的区别
    Android Binder机制简单了解
    Android内的生命周期整理
    Android App的生命周期是什么
    ListView item 中TextView 如何获取长按事件
    Go之并发处理(售票问题)
    Go之简单并发
    Go之函数直接实现接口
    Go之类型判断
  • 原文地址:https://www.cnblogs.com/kevinfuture/p/4275319.html
Copyright © 2020-2023  润新知