客户端 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 isn" +
"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套接字编程中,客户端之间的通信如何变得苍白无措。但是我不知道A,B和S之间的沟通是如何发生的,我已经尝试了太多但没有成功。我等待最佳答案
使用多线程概念。您可以在服务器中创建两个线程来接受来自 A 和 B 的传入连接,您需要在服务器中为客户端 A 和 B 打开两个端口。
体系结构取决于您的需要。如果要建立从 X 到 Y 的连接,则 Y 需要有一个侦听端口。因此,B 需要侦听传入的连接。就像 S 也需要侦听传入流量一样
请注意,这只是一种情况。体系结构将取决于您的要求。