无法在Java套接字/客户端之间读写

无法在Java套接字/客户端之间读写,java,sockets,networking,Java,Sockets,Networking,我正在尝试使用Java.net在Java中建立服务器和客户机之间的连接。我设法连接,但不发送任何数据。我已经粘贴了代码和输出: 服务器代码: ServerSocket welcomeSocket = new ServerSocket(999); Socket connectionSocket = welcomeSocket.accept(); System.out.println("Connected to: " + connectionSocket.toString()); DataOutpu

我正在尝试使用Java.net在Java中建立服务器和客户机之间的连接。我设法连接,但不发送任何数据。我已经粘贴了代码和输出:

服务器代码:

ServerSocket welcomeSocket = new ServerSocket(999);
Socket connectionSocket = welcomeSocket.accept();
System.out.println("Connected to: " + connectionSocket.toString());
DataOutputStream outToClient = newDataOutputStream(connectionSocket.getOutputStream());
outToClient.writeBytes("Testing connection");
客户端代码:

Socket clientSocket = new Socket("130.236.248.52", 999);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
modifiedSentence = inFromServer.readLine();
System.out.println("[From server:] " + modifiedSentence);
服务器输出: 已连接到:套接字[addr=/130.236.248.54,端口=51535,localport=999]

客户端输出:

  • 使用a来编写文本(就像使用BufferedReader来读取文本一样)
  • 在writer上调用
    flush()
    ,强制执行输出
  • 如果在客户端调用
    readLine()
    ,则需要有一个行尾才能读取
  • BufferedWriter outToClient=new BufferedWriter(new OutputStreamWriter(connectionSocket.getOutputStream()); outToClient.write(“测试连接”); outToClient.newLine(); outToClient.flush();
    你在读台词,但不是在写台词。您需要附加一个行终止符,或者使用导出println()方法的类之一并调用它。

    在写入客户端后是否尝试关闭connectionSocket?是的,我有clientSocket.close();在客户端代码中的println之后,我指的是在服务器上
    connectionSocket.close()
    outToClient.writeBytes之后(“测试连接”)是的,我还有welcomeSocket.close();在write语句之后。否,您需要关闭
    connectionSocket
    以切断与客户端的通信。关闭
    welcomeSocket
    只会停止服务器侦听任何新连接。在连接关闭之前,服务器发送的最后一行可能不需要新行。它现在正在工作,非常感谢:) BufferedWriter outToClient = new BufferedWriter(new OutputStreamWriter(connectionSocket.getOutputStream())); outToClient.write("Testing connection"); outToClient.newLine(); outToClient.flush();