如何處理多個客戶端以連接到一臺服務器?我有這個LogServer.javaimport 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。我該如何處理?套接字實際上如何與多個客戶端/一臺服務器一起工作?
添加回答
舉報
0/150
提交
取消