套接字编程中的 A、B 和 S 如何在 Java 中进行通信

  • 本文关键字:Java 通信 编程 套接字 java
  • 更新时间 :
  • 英文 :

客户端 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 也需要侦听传入流量一样

请注意,这只是一种情况。体系结构将取决于您的要求。

最新更新