UDPプロトコルを使用してネットワークの調製は、受信側は送信側はデータの「Hello、World」を送信し、プログラムのリスニングポート8001が設けられています。
サーバー側
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UdpServer {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DatagramSocket ds=new DatagramSocket(3000);
String str="hello world";//要发送的数据
/**
*
* 创建一个要发送的数据包,数据包包括发送的数据,数据的长度,接收端的ip地址和端口号
*
*/
DatagramPacket dp=new DatagramPacket(str.getBytes(),
str.length(),InetAddress.getByName("localhost"),8001);
System.out.println("发送信息");
ds.send(dp);
ds.close();
}
}
クライアント
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UdpTest {
public static void main(String[] args) throws IOException {
byte[] buf=new byte[1024];
//定义一个dategramSocket对象,监听器的端口号为8001
DatagramSocket ds=new DatagramSocket(8001);
//定义一个dategramPacket对象,用于接受数据
DatagramPacket dp=new DatagramPacket(buf, 1024);
System.out.println("等待接受数据");
ds.receive(dp);//等待接受数据,如果没有接受数据,会发生阻塞
String str=new String(dp.getData(), 0, dp.getLength())+"from"
+dp.getAddress().getHostAddress()+":"+dp.getPort();
System.out.println(str);
ds.close();
}
}