我通过两个步骤将数据发送到服务器: 1)我将使用字节发送的数据长度[4] 2)数据。Java - InputStream - 输入测试
服务器侦听数据的确切长度(先发货),然后回复。
所以我听InputStream并尝试获取数据。
我的问题: 无论我在做什么,我只得到我发送的流,但服务器明确地发送一个新的字符串。
看来我不能等待-1(字符串的末尾),因为程序会超时,并且我确信服务器不会发送任何内容。
因此,我正在使用inputStream.available()来查找缓冲区中剩余的字节数。
一旦我在读完所有数据后发送inputStream.read(),它将会以“网络空闲超时”超时。
但我需要听取inputStream以确保我不会丢失信息。
为什么我只接收我发送的信息,而不是服务器发送的信息? 如何收听新项目的连接?
这里是我的代码:
private void sendData (byte[] sendBytes){
try {
os.write(sendBytes);
os.flush();
} catch (IOException ex) {
}
}
请帮 THD
我不明白你想要做什么,但使用is.available()不正确。服务器在做什么?客户在做什么?它是什么类型的服务器? – Kaj 2011-05-28 18:52:21
我想要做什么: 从服务器接收数据。 客户端发送数据,服务器接收它们(正确测试服务器端的人员)。 服务器发送数据,但客户端不读取正确的数据,但只读取客户端发送之前的字符串,一旦服务器发送了某些内容(不同)。 我不知道它是什么样的服务器,我不能在星期一之前问服务器的家伙。 – TDH 2011-05-28 18:58:43
我可以看到我收到的数据: inputStream.parent.Inherited.buf.0-99 iStreams设置为1,connectionOpen为true 我可以发布的任何其他内容,这会有所帮助吗? – TDH 2011-05-28 19:01:55