从socket读取时返回的java空字符串
我正在尝试使用tcp/ip连接到服务器
我可以连接到服务器,但得到的响应为空
代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
private static final String SERVER_ADDRESS = "192.168.64.79";
private static final int TCP_SERVER_PORT = 6669;
public void connect() {
BufferedReader in;
try {
// Socket skt = new Socket("50.128.128.254", 6669);//ip,port
Socket clientSocket = new Socket(SERVER_ADDRESS, TCP_SERVER_PORT);// ip,port
System.out.println(" client Socket created ..Enter input : ");
// BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
PrintWriter outToServer = new PrintWriter(clientSocket.getOutputStream(), true);
String ToServer = "123";//inFromUser.readLine();
outToServer.println(ToServer);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.print("Received string: \n");
// while (!in.ready()) {
// }
// in is never ready
System.out.println(in.readLine()); // NULL returned
// System.out.print("'\n");
in.close();
System.out.print("connection closed");
} catch (Exception e) {
System.out.print("Whoops! It didn't work!\n");
e.printStackTrace();
}
}
}
我提到Getting Null String when reading from a socket
编辑 有时我得到空响应,有时我得到连接重置错误(对于相同的输入)
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at Tcp.Client.connect(Client.java:33)
at Pms.main(Pms.java:8)
谢谢
共 (0) 个答案