【需求】:实现双方聊天(收数据和发数据)
【技术】:网络编程、IO流、多线程
【代码】:
/* 需求:实现双方聊天(收数据和发数据) 所需技术:网络编程、IO流、多线程 */ import java.net.*; import java.io.*; class SendInfo implements Runnable { private DatagramSocket ds; public SendInfo(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("0000".equals(line)) break; byte[] buf=line.getBytes(); DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10001); ds.send(dp); } } catch (Exception e){ throw new RuntimeException("发送数据异常!!!"); } } } class ReceInfo implements Runnable { private DatagramSocket ds; public ReceInfo(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()); int port=dp.getPort(); System.out.println(ip+"\\"+port+"::"+data); } } catch (Exception e){ throw new RuntimeException("接收数据异常!!!"); } } } class UdpChat { public static void main(String[] args) throws Exception { DatagramSocket sendSocket=new DatagramSocket(6666); DatagramSocket receSocket=new DatagramSocket(10001); new Thread(new SendInfo(sendSocket)).start(); new Thread(new ReceInfo(receSocket)).start(); } }
【截图】:

由于只有博主一个人所以属于自娱自乐。。。
文章来源: https://blog.csdn.net/The_Best_Hacker/article/details/97015812