实现UDP简单通信
服务器代码(接收数据)
public class UDPServer {
public static void main ( String [ ] args) throws IOException {
DatagramSocket socket = new DatagramSocket ( 80 ) ;
byte [ ] data = new byte [ 1024 ] ;
DatagramPacket packet = new DatagramPacket ( data, data. length) ;
System . out. println ( "========服务以启动,等待客户端发送数据" ) ;
socket. receive ( packet) ;
String msg = new String ( data, 0 , packet. getLength ( ) ) ;
System . out. println ( "我是服务器,客户端说:" + msg) ;
}
}
客户端代码(发送数据)
public class UDPClient {
public static void main ( String [ ] args) throws IOException {
InetAddress address = InetAddress . getByName ( "localhost" ) ;
int port = 80 ;
byte [ ] data = "udp通信so easy" . getBytes ( ) ;
DatagramPacket packet = new DatagramPacket ( data, data. length, address, port) ;
DatagramSocket socket = new DatagramSocket ( ) ;
socket. send ( packet) ;
}
}
服务器代码(发送数据)
public class UDPServer {
public static void main ( String [ ] args) throws IOException {
DatagramSocket socket = new DatagramSocket ( 80 ) ;
byte [ ] data = new byte [ 1024 ] ;
DatagramPacket packet = new DatagramPacket ( data, data. length) ;
System . out. println ( "========服务以启动,等待客户端发送数据" ) ;
socket. receive ( packet) ;
String msg = new String ( data, 0 , packet. getLength ( ) ) ;
System . out. println ( "我是服务器,客户端说:" + msg) ;
InetAddress address = packet. getAddress ( ) ;
int port = packet. getPort ( ) ;
byte [ ] data2 = "欢迎您!" . getBytes ( ) ;
DatagramPacket packet2 = new DatagramPacket ( data2, data2. length, address, port) ;
socket. send ( packet2) ;
socket. close ( ) ;
}
}
客户端代码(接收数据)
public class UDPClient {
public static void main ( String [ ] args) throws IOException {
InetAddress address = InetAddress . getByName ( "localhost" ) ;
int port = 80 ;
byte [ ] data = "udp通信so easy" . getBytes ( ) ;
DatagramPacket packet = new DatagramPacket ( data, data. length, address, port) ;
DatagramSocket socket = new DatagramSocket ( ) ;
socket. send ( packet) ;
byte [ ] data2 = new byte [ 1024 ] ;
DatagramPacket packet2 = new DatagramPacket ( data2, data2. length) ;
socket. receive ( packet2) ;
String reply = new String ( data2, 0 , packet2. getLength ( ) ) ;
System . out. println ( "我是客户端,服务器说:" + reply) ;
socket. close ( ) ;
}
}