这是为您的服务器。创建所有连接的列表
List<RelayThread> clients = new ArrayList<RelayThread>(); while (true) { try { socket = serverSocket.accept(); } catch (IOException e) { System.out.println("I/O error: " + e); } // new thread for a client RelayThread relay = new RelayThread(socket,this); relay.start(); clients.add(relay); }
以及向其他客户端发送消息的方法
public void sendCommand(String command, RelayThread source){ for (int i=0;i<clients.size();i++){ if (clients.get(i) != source) { clients.get(i).sendCommand(command); } } }
并且,RelayThread的构造函数保持Main
Main main; public RelayThread (Socket clientSocket,Main main) { this.socket = clientSocket; this.main = main; }
和,RelayThread中的发件人邮件
public void sendCommand(String command){ out.writeBytes((command+"\r\n").getBytes()); // I suggest you add a parser charachter, like \r\n. then client can understand message ends }