java中udp和tcp程序的区别
时间: 2023-12-06 17:38:06 浏览: 149
Java中UDP和TCP程序的区别如下:
1. UDP是无连接的,而TCP是面向连接的。UDP不需要在发送数据之前建立连接,而TCP需要先建立连接,然后才能进行通信。
2. UDP是不可靠的,而TCP是可靠的。UDP发送数据时不会确认对方是否收到,也不会重发丢失的数据包,而TCP会确认对方是否收到数据,并在必要时重发丢失的数据包。
3. UDP发送的数据包大小限制为64KB,而TCP没有大小限制。
4. UDP发送数据时不保证顺序,而TCP保证数据的顺序。
5. UDP适用于实时性要求高、数据量小、可靠性要求不高的场景,例如视频、音频等;而TCP适用于数据量大、可靠性要求高的场景,例如文件传输、网页浏览等。
以下是Java中UDP和TCP的代码示例:
UDP示例:
```java
// 发送端
DatagramSocket socket = new DatagramSocket();
String message = "Hello, UDP!";
byte[] data = message.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramPacket packet = new DatagramPacket(data, data.length, address, 8888);
socket.send(packet);
socket.close();
// 接收端
DatagramSocket socket = new DatagramSocket(8888);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("Received message: " + message);
socket.close();
```
TCP示例:
```java
// 服务器端
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
String message = new String(buffer, 0, len);
System.out.println("Received message: " + message);
outputStream.write(("Server received: " + message).getBytes());
}
socket.close();
serverSocket.close();
// 客户端
Socket socket = new Socket("127.0.0.1", 8888);
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, TCP!".getBytes());
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
String message = new String(buffer, 0, len);
System.out.println("Received message: " + message);
socket.close();
```
阅读全文
相关推荐















