java:用UDP协议,开发一个聊天工具代码
2015-07-26 13:47
483 查看
/** 用UDP协议,开发一个聊天工具 */ import java.net.*; import java.io.*; //发送端 class SendChat implements Runnable { private DatagramSocket sendSocket; public SendChat(DatagramSocket sendSocket) { this.sendSocket = sendSocket; } public void run() { try { //键盘录入 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); String line = null; while((line = bufr.readLine()) != null) { if("over". equals(line)) { break; } //确定数据,并封装成包 byte[] buf = line.getBytes(); DatagramPacket dp = new DatagramPacket(buf, 0, buf.length, InetAddress.getByName("10.22.72.144"), 30002); sendSocket.send(dp); } sendSocket.close(); } catch(Exception e) { throw new RuntimeException("发送失败"); } } } //接收端 class RecChat implements Runnable { private DatagramSocket recSocket; public RecChat(DatagramSocket recSocket) { this.recSocket = recSocket; } public void run() { //定义数据包,用于存储数据 byte[] buf = new byte[1024]; while(true) { try { DatagramPacket dp = new DatagramPacket(buf, buf.length); //接收数据 recSocket.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 Chat { public static void main(String[] args) throws Exception { DatagramSocket sendSocket = new DatagramSocket(); DatagramSocket recSocket = new DatagramSocket(30002); new Thread(new SendChat(sendSocket)).start(); new Thread(new RecChat(recSocket)).start(); } }
相关文章推荐
- springmvc+mybatis+mysql整合实战
- eclipse修改java代码后报错: java.lang.OutOfMemoryError: PermGen space
- 学习java编程能往哪些方向发展
- Java关键字this、super使用总结
- jdk 安装
- 为什么要重写hashcode() 方法
- java中,随机的得到10个布尔类型的值,然后统计这些值出现的次数并输出!
- Java内部类学习笔记
- JAVA之四种线程池
- 深入浅出RxJava三–响应式的好处
- 深入浅出RxJava(二:操作符)
- 深入浅出RxJava(一:基础篇)
- MyEclipse_10.7安装egit
- Java学习之路0721(七)(抽象类、内部类、接口、多态,单子例模式、工厂模式))
- String to Integer (atoi)
- JAVA从键盘输入数组 2015-07-26 12:01 2人阅读 评论(0) 收藏
- 解决:eclipse的CTRL+space 被输入法占用的尴尬
- O(logn)时间复杂度求Fibonacci数列(java)
- 20150726Java
- 学习java的感悟和总结