网络实现UDP协议连接

1 要想通过UDP协议来实现网络通信。则要使用DatagramSocket 和DatagramPacket来使用。


2 客户端创建一个DatagramSocket 和DatagramPacket。让DatagramPacket绑定数据和host和port。发送时通过DatagramSocket的send方法
如:DatagramSocket udpSocket=new DatagramSocket();
String value_c="client_data";
byte[] byte_c=value_c.getBytes();;
DatagramPacket packet=new DatagramPacket(byte_c,0,byte_c.length,InetAddress.getByName("127.0.0.1"),24520);
udpSocket.send(packet);


发送时。需要带上host对应的InetAddress和port。客户端的发送。通过DatagramSocket 的send方法。参数为DatagramPacket  。


3 客户端的接收。通过DatagramSocket 的receive方法。参数为DatagramPacket。
如:DatagramSocket udpSocket=new DatagramSocket();
byte[] byte_c_=new byte[1024];
DatagramPacket packet_=new DatagramPacket(byte_c_,0,byte_c_.length);
udpSocket.receive(packet_);
String value_c_=new String(byte_c_);
接收式。只需要DatagramPacket中设置字节数组的长度即可。


4 服务端的先接收。然后再发送给客户端。接收时。通过DatagramSocket 设置端口号需要和客户端发送时一致。
如:DatagramSocket udpSocket=new DatagramSocket(24520);
byte[] byte_s=new byte[1024];
DatagramPacket packet=new DatagramPacket(byte_s,0,byte_s.length);
udpSocket.receive(packet);
String value_s=new String(byte_s);
value_s=value_s.trim();//这里需要注意。需要通过trim函数来去除空格。
这就是服务端的接收。端口号需要和客户端一致。


5 服务端发送时。需要设置host对应的InetAddress和port。
如:DatagramSocket udpSocket=new DatagramSocket(24520);
byte[] byte_s_=value_s.getBytes();
String host=packet.getAddress().getHostName();
int port=packet.getPort();
System.out.println("host:"+host+"---port:"+port);
DatagramPacket packet_=new DatagramPacket(byte_s_,0,byte_s_.length,InetAddress.getByName(host),port);
udpSocket.send(packet_);


总结。记住UDP协议的连接通信。通过DatagramSocket 和DatagramPacket 
客户端DatagramSocket 构造函数为空。
服务段DatagramSocket 的构造函数为客户端的端口号。


无论客户端还是服务端。发送都需要host对应的InetAddress和port。
如:DatagramPacket packet_=new DatagramPacket(byte_s_,0,byte_s_.length,InetAddress.getByName(host),port);
udpSocket.send(packet_);
而接收只需要设置字节数组的相关信息即可。


记住:发送需要地址和端口。而接收不需要。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值