通过套接字将多个客户端编程到一台服务器

如何处理多个客户端以连接到一台服务器?我有这个LogServer.java


import javax.net.ssl.*;

import javax.net.*;

import java.io.*;

import java.net.*;


public class LogServer {

  private static final int PORT_NUM = 5000;

  public static void main(String args[]) {

    ServerSocketFactory serverSocketFactory =

      ServerSocketFactory.getDefault();

    ServerSocket serverSocket = null;

    try {

      serverSocket =

        serverSocketFactory.createServerSocket(PORT_NUM);

    } catch (IOException ignored) {

      System.err.println("Unable to create server");

      System.exit(-1);

    }

    System.out.printf("LogServer running on port: %s%n", PORT_NUM);

    while (true) {

      Socket socket = null;

      try {

        socket = serverSocket.accept();

        InputStream is = socket.getInputStream();

        BufferedReader br = new BufferedReader(

          new InputStreamReader(is, "US-ASCII"));

        String line = null;

        while ((line = br.readLine()) != null) {

          System.out.println(line);

        }

      } catch (IOException exception) {

        // Just handle next request.

      } finally {

        if (socket != null) {

          try {

            socket.close();

          } catch (IOException ignored) {

          }

        }

      }

    }

  }

}

和一个嵌入式小程序,其中包含部分代码,例如


import java.io.*;

import java.util.logging.*;


public class LogTest

{

  private static Logger logger = Logger.getAnonymousLogger();


  public static void main(String argv[]) throws IOException

  {

    Handler handler = new SocketHandler("localhost", 5000);

    logger.addHandler(handler);

    logger.log(Level.SEVERE, "Hello, World");

    logger.log(Level.SEVERE, "Welcome Home");

    logger.log(Level.SEVERE, "Hello, World");

    logger.log(Level.SEVERE, "Welcome Home");

  }

}

现在的问题是,如果我在服务器上运行“ java LogServer”,它将打开应用程序并等待输入流,如果打开站点,它将开始流式传输日志。但是,如果我使用其他计算机/网络再打开一个,则第二个站点不会记录该流。似乎是因为第一个仍绑定到端口5000。


我该如何处理?套接字实际上如何与多个客户端/一台服务器一起工作?


翻阅古今
浏览 443回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java