0
点赞
收藏
分享

微信扫一扫

力扣300-最长递增子序列(Java详细题解)

程序小小黑 2024-09-19 阅读 23

"三次握手"是指在建立TCP连接时,客户端和服务器之间交换三个分组。CP协议在传输层为两台计算机之间提供可靠的数据流。在Java中,我们可以使用Socket类来创建TCP连接。

解决方案1:

以下是一个简单的Java程序,它创建一个客户端和服务器端的TCP连接。

客户端代码:

import java.io.*;
import java.net.*;
 
public class TCPClient {
    public static void main(String args[]) throws IOException {
        try {
            Socket socket = new Socket("localhost", 8888);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
 
            // 发送消息到服务器
            out.println("Hello Server");
            System.out.println("Client Says: " + in.readLine());
 
            in.close();
            out.close();
            socket.close();
        } catch (UnknownHostException e) {
            System.out.println("You've entered an incorrect hostname");
        } catch (IOException e) {
            System.out.println("An error occurred");
        }
    }
}

服务端代码:

import java.io.*;
import java.net.*;
 
public class TCPServer {
    public static void main(String args[]) throws IOException {
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
            Socket socket = serverSocket.accept();
 
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
 
            // 接收客户端消息
            System.out.println("Server Says: " + in.readLine());
            out.println("Hello Client");
 
            in.close();
            out.close();
            serverSocket.close();
        } catch (IOException e) {
            System.out.println("An error occurred");
        }
    }
}

在上述代码中,我们首先创建一个ServerSocket对象,该对象在端口8888上等待连接请求。然后,我们创建一个Socket对象,该对象尝试连接到在同一端口上监听的服务器。服务器接收到连接请求后,双方建立连接,然后可以进行数据的发送和接收。

解决方案2:

如果你想要更直观地看到三次握手的过程,你可以使用网络调试工具,如Wireshark。

在你的电脑上启动服务器代码,然后启动Wireshark。Wireshark将开始捕获网络流量。然后在另一台电脑上启动客户端代码。当客户端和服务器建立连接后,Wireshark将显示三次握手的详细信息。

注意:由于安全性和隐私原因,许多网络调试工具可能无法捕获本地回环接口上的网络流量。在这种情况下,你可以尝试将服务器代码的"localhost"更改为你的本地IP地址,然后在客户端和服务器的机器上运行Wireshark。

以上就是Java中三次握手的基本概念和实现方式。

举报

相关推荐

0 条评论