java网络编程---udp
2014-01-08 18:13
323 查看
/** * udp是面向无连接的,先运行哪端都可以! * 为了能看到数据,先运行接收端UdpReceive */ import java.net.*; public class UdpReceive { public static void main(String[] args) throws Exception { DatagramSocket ds = new DatagramSocket(8888); while (true) { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, 0, buf.length); ds.receive(dp); // 阻塞式方法,没数据就一直等待... // 从数据包中获取数据 String ip = dp.getAddress().getHostAddress(); int port = dp.getPort(); String data = new String(dp.getData(), 0, dp.getLength()); System.out.println("ip = " + ip); System.out.println("port = " + port); System.out.println("data = " + data); System.out.println("------------------------"); } // ds.close(); } }
import java.io.*; import java.net.*; public class UdpSend { public static void main(String[] args) throws Exception { // 创建udp服务 DatagramSocket ds = new DatagramSocket(9999); //给发送端指定一个标识--端口号 // 确定数据并封装成数据包 // byte[] data = "hello world".getBytes(); //使用键盘录入数据 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = ""; while((line = br.readLine()) != null){ byte[] data = line.getBytes(); DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 8888); // 通过socket服务,将已有的数据包发送出去,通过send方法 ds.send(dp); if("886".equals(line)){ break; } } // 关闭资源 ds.close(); } }
相关文章推荐
- 从问题看本质: 研究TCP close_wait的内幕
- nginx https 测试 及status模块
- http 状态100的使用 Use of the 100 (Continue) Status
- 配置ovirt-vdsm桥接网络 系统fedora 19
- 网络编程
- win7下实现利用命名管道实现网络通信
- HTTP协议与FTP协议上传文件的优缺点
- 网络IO之阻塞、非阻塞、同步、异步总结
- java网络编程 tcp 黑马程序员学习笔记(11)
- Http上传与Ftp上传的区别详解
- java 网络编程 tcp黑马程序员学习笔记(4)
- java 网络编程 黑马程序员学习笔记(3)
- HTTP协议与HTML form
- 网络库比较
- 使用ip link set eth0 up 命令启用网卡后,网络不通的问题的解决
- 笔记本Wifi连接出现“设置与网络连接不匹配”的解决方法
- XMLHttpRequest cannot load – Origin is not allowed by Access-Control-Allow-Origin.
- network: android 网络判断
- 常见的Http代码含义
- android 使用广播监听网络状态