UDP Socket(传输long类型数据)

1、 UDP:向应用程序提供了一种发送封装的原始IP数据报的方法、并且发送时无需建立连接,是一种不可靠的连接,效率高;数据报/非连接

2、 Socket:两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket、Socket通常用来实现client—server连接、java.net包中定义的两个Socket和ServerSocket,分别用来实现双向连接的client和server端、建立连接时所需的寻址信息为远程计算机的IP地址和端口号(Port number)——TCP端口 UDP端口分开,每一个65536个端口

import java.net.*;
import java.io.*;

public class TestUDPClient { // 将long类型数转换为字节数组
public static void main(String args[]) throws Exception {
long n = 10000L;
ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 以字节数组形式输出
DataOutputStream dos = new DataOutputStream(baos); // 创建数据输出流
dos.writeLong(n); // 将n写入字节数组

byte[] buf = baos.toByteArray(); // 定义字节数组,字符串解析为字节数组
System.out.println(buf.length);
// 创建数据报
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress("127.0.0.1", 5678));
DatagramSocket ds = new DatagramSocket(9999);
ds.send(dp); // 发送数据报
ds.close();
}
}


import java.net.*;
import java.io.*;

public class TestUDPServer {
public static void main(String args[]) throws Exception {
byte buf[] = new byte[1024]; // 申请1K内存空间
DatagramPacket dp = new DatagramPacket(buf, buf.length);// 创建包裹用来接收数据
DatagramSocket ds = new DatagramSocket(5678);// UDP的socket,5678端口
while (true) {
ds.receive(dp); // 接收数据报,存放在buf[]中,如果没接收到数据则一直等待
ByteArrayInputStream bais = new ByteArrayInputStream(buf); // 接收字节数组,放入buf[]中
DataInputStream dis = new DataInputStream(bais); // 创建数据输入流
System.out.println(dis.readLong()); // 转换为long类型
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值