java udp 发送小数数字(较难)
2015-08-13 11:48
330 查看
代码全部来自:http://825635381.iteye.com/blog/2046882,在这里非常感谢了,我运行测试了下,非常正确,谢谢啊
服务端程序:
客户端程序:
服务器端控制台显示出客户端发出数字:
服务端程序:
package udpServer; import java.io.*; import java.net.*; /** * 服务端 * 1、创建服务+端口 * 2、准备接受容器 byte数组 * 3、把接收容器封装成包 DatagramPacket * 4、接受数据 * 5、分析数据 将字节数组转换成--------》各种类型数据 * 6、释放资源 */ public class server { public static void main(String[] args) throws IOException { //1.创建服务+端口 DatagramSocket server = new DatagramSocket(9999); //2.准备接受容器 byte[] container = new byte[1024]; //3.封装成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受数据 (阻塞式接受) server.receive(packet); //5.分析数据 double data = convert(packet.getData()); System.out.println(data); //6.释放资源 server.close(); } public static double convert(byte[] data) throws IOException { DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data)); double num = dis.readDouble(); dis.close(); return num; } }
客户端程序:
package udpClient; import java.io.*; import java.net.*; /** * 字符串数据类型的通信 * 1、创建客户端+端口 * 2、准备数据 字节数组 * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 * * 思考 : 发送有类型的数据 怎么处理 如对象 数字 等等 * 1、创建客户端+端口 * 2、准备数据 把各种类型的数据转成--------》字节数组 *************************************** * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 */ public class client { public static void main(String[] args) throws IOException { //1.创建客户端+端口 DatagramSocket client = new DatagramSocket(8888); //2.准备要发送的数据 字节数组 double d = 123.2345; byte[] data = convert(d); //3.给数据打包 并指定发送的目的地和端口 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.发送 client.send(packet); //5.释放 client.close(); } /** * 字节数组 数据源 + Data输出流 * @param d * @return * @throws IOException */ public static byte[] convert(double d) throws IOException { byte[] data = null; //写入数据 ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(bos); dos.writeDouble(d); dos.flush(); //获取数据 data = bos.toByteArray(); dos.close(); return data; } }
服务器端控制台显示出客户端发出数字:
123.2345
相关文章推荐
- Java开发框架搭建:配置文件
- 如何将 Java 项目转换成 Maven 项目
- activeMQ demo案例
- java线程:大总结
- Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图
- Java线程:新特征-有返回值的线程
- java udp socket(双通信)
- Maven Web项目 java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException错误
- 使用struts2中的codebehind插件
- java线程的同步互斥和通讯
- 对象的序列化与反序列化---IO学习笔记(四)
- java基础知识(一)
- Struts2 - 常用的constant总结
- java udp socket通信(仅发送)
- Eclipse种使用Maven
- 利用反射来改变String对象
- SpringMVC表单标签(7)
- eclipse 异常退出 再进入 选择命名空间路径后自动闪退(自动闪退)
- java并发编程--ThreadLocal的用法和分析
- Spring3.1新特性