Tôi đã thử điều này một thời gian và tôi muốn nhiều khách hàng nhận nhiều đầu vào đồng thời.
Có một vấn đề, tôi muốn máy chủ in "Hi" cho tất cả khách hàng nếu một khách hàng nói 'print2all Hi'.
Tôi biết cách xử lý nó để in nó, chỉ để in cho TẤT CẢ khách hàng là vấn đề.Tôi đã tạo một máy chủ Java có ổ cắm, chỉ cần in tới ALL socket?
Đây là những gì tôi có cho đến nay.
server
try{
try{
server = new ServerSocket(25565);
} catch (Exception e){
e.printStackTrace();
}
while (isListening){
new SocketThread(server.accept()).start();
}
server.close();
} catch (Exception e){
e.printStackTrace();
}
SocketThread
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine, outputLine;
Processor kkp = new Processor();
out.println("Hi!");
while ((inputLine = in.readLine()) != null) {
outputLine = kkp.Proccess(inputLine,this.socket);
out.println(outputLine);
}
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
Khách hàng
Processor p = new Processor(); socket = new Socket("localhost",25565); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser;
out.println("print2all Hi")
socket.close();
Guys. Nếu bạn muốn sử dụng như một máy chủ khởi động, tôi cung cấp cho đầy đủ cho phép = P
Tôi không nghĩ rằng ổ cắm là chủ đề an toàn mặc dù, vì vậy bạn có thể kết thúc với in ấn đồng thời từ các luồng khe kết nối sở hữu ổ cắm và phát sóng. –
@ChristopheBiocca: bạn nói đúng, nhưng OP dường như có nhiều vấn đề đơn giản hơn nhiều. Tuy nhiên tôi sẽ đề cập đến về an toàn thread, cảm ơn! –
+1 Nếu bạn sử dụng một bộ sưu tập từ thư viện tương tranh, bạn có thể thêm chuỗi và cuối cùng loại bỏ các ổ cắm để duy trì danh sách. Có khả năng là việc thêm và gỡ bỏ trình xử lý của kết nối sẽ hữu ích hơn khi bạn có thể nhận được trạng thái của các kết nối tốt. –