UDP (ユーザー データグラム プロトコル) は、時間に敏感なアプリケーションで一般的に使用される軽量のコネクションレス型ネットワーク プロトコルです。これにより、アプリケーションは TCP 接続を確立せずにデータを送受信できるようになります。サンプル Java コードを使用して UDP サーバーとクライアントを作成できます。サーバーは受信データグラムをリッスンして応答し、クライアントはメッセージを送信して応答を受信します。このコードを使用して、チャット アプリケーションやデータ収集システムなどの実際のユースケースを構築できます。
Java ネットワーク プログラミング: UDP を使用したコネクションレス型通信
はじめに
UDP (ユーザー データグラム プロトコル) は、時間に敏感なアプリケーションで一般的に使用される軽量のコネクションレス型ネットワーク プロトコルです。これにより、アプリケーションは TCP 接続を確立せずにデータを送受信できるようになります。
#使用法#Java を使用して UDP サーバーとクライアントを作成する例を次に示します:
サーバー コード: import java.net.*;
public class UDPServer {
public static void main(String[] args) throws Exception {
// 创建一个DatagramSocket,监听6789端口
DatagramSocket serverSocket = new DatagramSocket(6789);
// 持续监听传入的数据报
while (true) {
// 创建一个数据报对象来接收数据
DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);
// 接收数据报
serverSocket.receive(receivePacket);
// 获取客户端地址和端口
InetAddress clientAddress = receivePacket.getAddress();
int clientPort = receivePacket.getPort();
// 将数据报转换为字符串
String message = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("收到来自 " + clientAddress + ":" + clientPort + " 的消息:" + message);
// 创建一个数据报对象来响应客户端
DatagramPacket responsePacket = new DatagramPacket(
("响应:" + message).getBytes(),
("响应:" + message).getBytes().length,
clientAddress,
clientPort
);
// 发送响应
serverSocket.send(responsePacket);
}
// 关闭服务器套接字
serverSocket.close();
}
}
import java.net.*;
public class UDPClient {
public static void main(String[] args) throws Exception {
// 创建一个DatagramSocket
DatagramSocket clientSocket = new DatagramSocket();
// 获取要发送的消息
String message = "你好,世界!";
// 将消息转换为字节数组
byte[] messageBytes = message.getBytes();
// 创建一个数据报对象,将消息发送到服务器的6789端口
DatagramPacket sendPacket = new DatagramPacket(
messageBytes,
messageBytes.length,
InetAddress.getByName("localhost"), // 服务器地址
6789 // 服务器端口
);
// 发送数据报
clientSocket.send(sendPacket);
// 创建一个数据报对象来接收服务器的响应
DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);
// 接收响应
clientSocket.receive(receivePacket);
// 将响应转换为字符串
String response = new String(receivePacket.getData(), 0, receivePacket.getLength());
// 打印响应
System.out.println("收到服务器的响应:" + response);
// 关闭客户端套接字
clientSocket.close();
}
}
このコードは、単純なチャット アプリケーションまたはデータ コレクションの構築に使用できます。システム。たとえば、クライアント コードを使用してサーバーにメッセージを送信し、サーバー コードを使用してメッセージに応答することができます。
以上がJava ネットワーク プログラミングでは、コネクションレス通信に UDP をどのように使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。