readline()不从套接字读取

时间:2013-05-18 22:56:19

标签: java android sockets stream inet

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中做同样的事情?

2 个答案:

答案 0 :(得分:0)

根据readLine()的javadoc:

  

读取一行文字。一条线被认为是由换行符('\ n'),回车符('\ r')或回车符后面的任何一个终止。

确保String具有正确的结构。

答案 1 :(得分:0)

你正在读行,但你不是在写行。 writeBytes()准确地写出你提供的内容,不多也不少,也没有新行。

你应该使用两个流或者一个Reader和一个Writer,而不是两者兼而有之。