我在Java中使用套接字编程时遇到问题。 有这样一个服务器,这是我用Python写的,我不应该改变。从尚未关闭的服务器套接字中读取所有字符串
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send('from server\nnewline\0')
data = s.recv(BUFFER_SIZE)
s.close()
现在我想写一个Java代码从服务器读取字符串。像这样的:
public static String readStr(Socket client) throws IOException {
InputStreamReader inStream = new InputStreamReader(
client.getInputStream());
BufferedReader inBuff = new BufferedReader(inStream);
String answer = new String();
String str = inBuff.readLine();
while (str!=null) {
answer = answer.concat(str + "\n");
str = inBuff.readLine();
}
answer = answer.substring(0, answer.length() - 1);
System.out.println("answer:\n "+answer);
return answer;
}
但它似乎阻止在邮件的最后一行str = inBuff.readLine();
行。我尝试了read()
方法,但它也被阻止。
我已经使用了nputStreamReader类。你推荐哪种方法? @ user6015630 – user63835
你可以在BufferedReader中使用read(char [] cbuf,int off,int len) – user6015630