1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java发送接收UDP数据包:字符串 byte[]字节数组 文件等

java发送接收UDP数据包:字符串 byte[]字节数组 文件等

时间:2019-12-15 07:26:26

相关推荐

java发送接收UDP数据包:字符串 byte[]字节数组 文件等

全栈工程师开发手册 (作者:栾鹏)

java教程全解

java发送接收UDP数据包,数据内容为byte[],包括一切可以转换为byte[]的内容。

测试代码

public static void main(String args[]) {sendUDPfile("127.0.0.1",1234,"D:\\test1.zip"); //发送文件//启动新线程发送数据,new Thread(new Runnable() {@Overridepublic void run() {sendUDP("127.0.0.1",9999,"hello".getBytes()); //发送字节数据}}).start();//在主线程中接收数据receiveUDP(9999); //接收数据}

使用UDP发送文件

public static void sendUDPfile(String host,int port,String filepath){try {File f=new File(filepath);byte[] message; // 要传送的数据int len = (int)f.length(); // 文件长度message = new byte[len];// 建立缓冲区FileInputStream in = new FileInputStream(f);int bytes_read = 0, n;do { // 从文件中读取n = in.read(message, bytes_read, len-bytes_read);bytes_read += n;} while((bytes_read < len)&& (n != -1));sendUDP(host, port, message);} catch (Exception e) {e.printStackTrace();}}

使用UDP发送byte[]数据流

public static void sendUDP(String host,int port,byte[] message) {try { // 根据主机名称得到IP地址InetAddress address = InetAddress.getByName(host);// 用数据和地址创建数据报文包DatagramPacket packet = new DatagramPacket(message, message.length, address, port);// 创建数据报文套接字并通过它传送DatagramSocket dsocket = new DatagramSocket();dsocket.send(packet);dsocket.close();}catch (Exception e) {System.err.println(e);}}

从指定端口接收UDP数据

public static void receiveUDP(int port) {try {byte[] buffer = new byte[1024];DatagramPacket packet = new DatagramPacket(buffer, buffer.length);DatagramSocket socket = new DatagramSocket(port);while (true) {socket.receive(packet);String s = new String(buffer, 0, 0, packet.getLength());System.out.println("接收到数据:"+s);packet = new DatagramPacket(buffer, buffer.length);}} catch (Exception e) {}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。