无法在Java套接字/客户端之间读写
我正在尝试使用Java.net在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
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]
客户端输出:
flush()
,强制执行输出readLine()
,则需要有一个行尾才能读取你在读台词,但不是在写台词。您需要附加一个行终止符,或者使用导出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();