客户端A如何向客户端B和B发送消息发送消息到服务器S.以及A和B之间如何进行通信?我已经尝试并解决了双方的问题,即单个客户端和单个服务器。我试过以下方式
//Server
public class DateServer {
public static void main(String[] args) throws IOException {
ServerSocket listener = new ServerSocket(9090);
try {
while (true) {
Socket socket = listener.accept();
System.out.println("Waiting for client on port " +
listener.getLocalPort() + "...");
try {
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
out.println(new Date().toString());
} finally {
socket.close();
}
}
} finally {
listener.close();
}
}
}
//Client
public class DateClient {
public static void main(String[] args) throws IOException {
String serverAddress = JOptionPane.showInputDialog(
"Enter IP Address of a machine that is\n" +
"running the date service on port 9090:");
Socket s = new Socket(serverAddress, 9090);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
//System.exit(0);
System.out.println(answer);
}
}
如何在java socket编程中的客户端之间进行通信。但我不知道如何在A,B和S.之间进行沟通。我尝试了太多但没有成功。我在等待最佳答案
答案 0 :(得分:2)
使用MultiThreading概念。您可以在服务器中创建两个线程来接受来自A和B的传入连接。您需要在服务器中为客户端A和B打开两个端口。
答案 1 :(得分:0)
架构取决于您的需求。如果要建立从X到Y的连接,则Y需要具有侦听端口。因此B需要监听传入的连接。就像S. S需要监听传入的流量一样
请注意,这只是一个案例。架构取决于您的要求。