1
s = new Socket(InetAddress.getByName(address), port);
Thread.sleep(250);
DataOutputStream outToServer = new DataOutputStream(s.getOutputStream());       
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(s.getInputStream()));

outToServer.writeBytes("MY_QUERY");

String rs = inFromServer.readLine();

s.close();

什么都没有发生,但是如果我使用 .read() 我会收到字符串的第一个字符。

我不知道我将收到的消息长度是多少,在 python 中我使用: sock.recv(1024) 其中 1024 是我可以接收的最大长度。

有没有办法在java中做同样的事情?

4

2 回答 2

0

根据 readLine() 的 javadoc:

读取一行文本。一行被认为是由换行符 ('\n')、回车符 ('\r') 或紧跟换行符的回车符中的任何一个终止的。

确保字符串具有正确的结构。

于 2013-05-18T23:10:45.043 回答
0

你在读台词,但你不是在写台词。writeBytes() 准确地写入您提供给它的内容,不多也不少,也没有新行。

你应该要么使用两个流,要么使用 Reader 和 Writer,而不是两者的混合。

于 2013-05-19T00:36:07.930 回答