其实UDP和TCP的代码的差别不大,个人觉得也就是将其数据包装好去发送;
还有就是,用TCP时,先启动客户端会握手失败。而UDP中,不会出现异常,但数据并不会被接收端收到。
发送端:
//发送端
@Test
public void sender(){
DatagramSocket socket= null;
try {
socket = new DatagramSocket();
String str="我是UDP";
InetAddress inet=InetAddress.getByName("127.0.0.1");
byte[] bytes=str.getBytes();
DatagramPacket packet=new DatagramPacket(bytes,0,bytes.length,inet,5678);
socket.send(packet);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(socket!=null){
socket.close();
}
}
}
接收端:
//接收端
@Test
public void receive(){
DatagramSocket socket= null;
try {
socket = new DatagramSocket(5678);
byte[] buffer=new byte[1024];
DatagramPacket packet=new DatagramPacket(buffer,0,buffer.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
} catch (IOException e) {
e.printStackTrace();
} finally {
if(socket!=null){
socket.close(); }
}
}
(未try-catch代码如下:)
发送端:
//发送端
@Test
public void sender() throws IOException {
DatagramSocket socket=new DatagramSocket();
String str="我是UDP";
InetAddress inet=InetAddress.getByName("127.0.0.1");
byte[] bytes=str.getBytes();
DatagramPacket packet=new DatagramPacket(bytes,0,bytes.length,inet,5678);
socket.send(packet);
socket.close();
}
接收端:
//接收端
@Test
public void receive() throws IOException {
DatagramSocket socket=new DatagramSocket(5678);
byte[] buffer=new byte[1024];
DatagramPacket packet=new DatagramPacket(buffer,0,buffer.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
socket.close();
}