A,B和S如何在Socket编程中用java进行通信?

时间:2014-03-05 05:56:18

标签: 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 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.之间进行沟通。我尝试了太多但没有成功。我在等待最佳答案

2 个答案:

答案 0 :(得分:2)

使用MultiThreading概念。您可以在服务器中创建两个线程来接受来自A和B的传入连接。您需要在服务器中为客户端A和B打开两个端口。

答案 1 :(得分:0)

架构取决于您的需求。如果要建立从X到Y的连接,则Y需要具有侦听端口。因此B需要监听传入的连接。就像S. S需要监听传入的流量一样

请注意,这只是一个案例。架构取决于您的要求。