
- 用户昵称:aflfte2011
接收线程类:
发送线程类
package com.aflfte.udp;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; public class TalkSend implements Runnable { private DatagramSocket client; private BufferedReader reader; private String ip; private int toport; public TalkSend(int port,String ip,int toport) { this.ip=ip; this.toport=toport; try { client = new DatagramSocket(port); reader=new BufferedReader(new InputStreamReader(System.in)); } catch (SocketException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } @Override public void run() { while(true) { String data=null; try { data = reader.readLine(); byte[] datas=data.getBytes(); DatagramPacket packet=new DatagramPacket(datas, 0, datas.length,new InetSocketAddress(ip,toport)); client.send(packet); if(data.equals("bye")) { break; } } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } //5、释放资源 client.close(); } } 建立两个使用类启动线程可进行聊天
package com.aflfte.udp;
/** * 加入多线程实现双向交流 * 模拟在线咨询 * @author jinhao * */ public class TalkStudent { public static void main(String[] args) { new Thread(new TalkReceive("老师",9999)).start(); new Thread(new TalkSend(5566, "localhost", 8899)).start(); } } « 实现TCP连接并发送文字 | UDP发送与接收文件» |