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_);
而接收只需要设置字节数组的相关信息即可。
记住:发送需要地址和端口。而接收不需要。
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_);
而接收只需要设置字节数组的相关信息即可。
记住:发送需要地址和端口。而接收不需要。