TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种不同的网络传输协议,它们在数据传输时有一些重要的区别。
根据不同的需求和场景,选择合适的协议可以更好地满足通信需求。
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("TCP 服务器启动,等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data = reader.readLine();
System.out.println("收到客户端数据:" + data);
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.println("已收到数据");
writer.flush();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.net.*;
public class UDPServer {
public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket(8888);
System.out.println("UDP 服务器启动,等待客户端发送数据...");
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
System.out.println("收到客户端数据:" + new String(packet.getData(), 0, packet.getLength()));
String response = "已收到数据";
DatagramPacket responsePacket = new DatagramPacket(response.getBytes(), response.length(), packet.getAddress(), packet.getPort());
socket.send(responsePacket);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上是用Java实现TCP和UDP服务器端的简单示例,通过这些示例可以更好地理解TCP和UDP的区别。