java - 在后台接收消息

标签 java sockets client-server

Java 客户端-服务器。 需要在后台接收客户端的消息。 我正在尝试在后台接收消息:

public Server() throws IOException {
           try {
        serverSocket=new ServerSocket(1234);
        fromclient= serverSocket.accept();
        System.out.println("Socket created");
    } catch (IOException e) {
        e.printStackTrace();
        System.out.println("Socket not created");
    }
    try {
        in  = new BufferedReader(new
                InputStreamReader(fromclient.getInputStream()));
    } catch (IOException e) {
        e.printStackTrace();
    }
    out = new PrintWriter(fromclient.getOutputStream(),true);
    String         input,output;
}

背景部分:

 public void run(ServerSocket welcomeSocket) throws IOException {
        Socket connectionSocket = welcomeSocket.
                accept();
        BufferedReader inFromClient =
                new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
        DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
        clientSentence = inFromClient.readLine();
        System.out.println(clientSentence);
        capitalizedSentence =
                clientSentence.toUpperCase() + '\n';
        outToClient.writeBytes(capitalizedSentence);
    }

并在客户端部分发送消息:

  Client client=new Client();
    client.Connect();
   client.sendToServer("text test");
   Run run=new Run();

  void run() throws IOException {
            BufferedReader inFromUser =
                    new BufferedReader(
                            new InputStreamReader(System.in));
            Socket clientSocket = new Socket ("127.0.0.1",6789);
            DataOutputStream outToServer =
                    new DataOutputStream(
                            clientSocket.getOutputStream());
            BufferedReader inFromServer =
                    new BufferedReader(
                            new InputStreamReader(
                                    clientSocket.getInputStream()));
            sentence = inFromUser.readLine();
           // while (true) {
                outToServer.writeBytes(sentence + "\n");
                modifiedSentence = inFromServer.readLine();
                System.out.println("FROM SERVER: " + modifiedSentence);
            //}
            //     clientSocket.close();
        }

但是什么也没发生。

最佳答案

您在端口 1234 上打开了 ServerSocket,然后在 6789 上打开了 Socket。尝试使用相同的端口:)

关于java - 在后台接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44707804/

相关文章:

ios - 无法从服务器下载附件作为响应

security - 防御中间人攻击

java - 在将 Json 对象转换为 POJO 之前验证它 - 使用 @requestBody

java - 使用 .bat 文件执行 jar 文件

java - 正则表达式拆分分隔符

javascript - 如何识别 socket.io 中不同的客户端?

在 c (gcc) centos 7 中实现的 unix 域套接字中的连接错误

java - 添加/扩展由 ListeningExecutorService 创建的 Future 的行为

node.js - 将 socket.io 更新到 1.0 版本时出现多个轮询请求(HTTP 错误 400)

java - 消息未发送回 Java 中的客户端