JAVA实现阻塞UDP通信

服务端:

package udp;


import java.io.*;

import java.net.*;


public class UDPServer {

   public static void main(String[] args) throws IOException {

       //新建一个DatagramSocket

       DatagramSocket server = new DatagramSocket(5050);


       //接收客户端发送来的消息

       byte[] recvBuf = new byte[100];

       DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length);

       server.receive(recvPacket);

       String recvStr = new String(recvPacket.getData(), 0, recvPacket.getLength());

       System.out.println("客户端传来消息:" + recvStr);


       //往客户端发送消息

       int port = recvPacket.getPort();

       InetAddress addr = recvPacket.getAddress();

       String sendStr = "Hello ! I'm Server";

       byte[] sendBuf;

       sendBuf = sendStr.getBytes();

       DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length,addr, port);

       server.send(sendPacket);


       //关闭DatagramSocket

       server.close();

   }

}


客户端:

p

package udp;


import java.io.*;

import java.net.*;

import java.util.Arrays;


import test.PublicTool;


public class UDPClient {

public static void main(String[] args) throws IOException {

while(true){

run();

try {

Thread.sleep(2000l);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

public static void run(){

int port = 10000;

DatagramSocket client = null;

try {

client = new DatagramSocket(port);

// 往服务端发送消息

byte[] sendBuf = { 0x7C, 0x13, 0x1F, 0x47, 0x0E, 0x03, 0x06, 0x0F,

0x13, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, (byte) 0xAA,

0x70, 0x7A };

InetAddress addr = InetAddress.getByName("192.168.1.200");

DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length,

addr, port);

client.send(sendPacket);

// 接受服务端传来的消息

byte[] recvBuf = new byte[68];

DatagramPacket receiveBuf = new DatagramPacket(recvBuf, recvBuf.length);

client.receive(receiveBuf);

byte[] all = receiveBuf.getData();

PublicTool.printHexString(all);

System.out.println("服务端传来消息:" + Arrays.toString(all));

} catch (Exception e) {

e.printStackTrace();

} finally{

if(client != null){

client.close();

}

}

}

}


你可能感兴趣的:(java,tcp,通信,阻塞,TCP/IP,UDP)