java - 服务器套接字中的线程和处理程序

标签 java multithreading sockets

如何在没有对象的情况下实例化new Handler(clientSocket);?有人可以提供一些见解吗?

public class Server1 {

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(15897);
            while (true) {
                Socket clientSocket = serverSocket.accept();

                new Handler(clientSocket);

            }
        } catch (IOException e)
        {
            System.out.println("problem here 1");
        }
    }
}

class Handler implements Runnable {

    int red;
    int reads, r;

    Socket clientSocket;

    Handler(Socket s)
    {
        this.clientSocket = s;

        new Thread(this).start();

    }

    public void run(){        
        BufferedReader bufferedReader;
        try {

            bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

            String inputLine = bufferedReader.readLine();

最佳答案

在您的代码中,服务器被用来继续监听传入的客户端。

       Socket clientSocket = serverSocket.accept();

serverSocket.accept()等待直到找到连接或客户端。 如果找到客户端则 accept()函数返回一个本地套接字,该套接字连接到客户端的另一个套接字,该套接字被赋予 clientSocket在你的代码中。

new Handler(clientSocket);

现在clientSocket被赋予Handler您正在使用 thread 的类用于读取 clientSocket 给出的数据。

thread的目的这里是处理每个传入的clientSocket分别。

关于java - 服务器套接字中的线程和处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20901796/

相关文章:

javascript - 套接字服务器2服务器连接

javascript - REGEX 丢弃 float 和前导零

java - SWT-浏览器 : How to load a resource using HTTPS if the certificate is untrusted?

java - 如何使用 Struts2 REST 插件创建自定义方法

multithreading - 如何使用Data.Concurrent.mergeIO?

c - 使用 C 语言的套接字编程,使用 select() 函数

java - 如何对包含整数的字符串列表进行排序

Java NIO TCP超时问题

multithreading - MSMQ中需要互斥体吗?

java - Android App 无法通过 Socket 连接到 Java Server