[英]Java - InputStream - Test for input
我分两步向服务器发送数据:1)我将使用字节 [4] 发送的内容的长度 2)数据。
服务器侦听数据的确切长度(首先发送)然后回复。
所以我听 InputStream 并尝试获取数据。
我的问题:无论我在做什么,我只收到我发送的 stream,但服务器肯定会发送一个新字符串。
看来我不能等待 -1(字符串结尾),因为程序会超时,而且我确信服务器不会发送任何类似的东西。
因此,我使用 inputStream.available() 来找出缓冲区中还剩下多少字节。
一旦我在读取所有数据后发送 inputStream.read() ,它将因“网络空闲超时”而超时。
但我需要收听 inputStream 以确保我没有丢失信息。
为什么我只收到我发送的信息而不是服务器发送的信息? 我如何收听新项目的连接?
这是我的代码:
private void sendData (byte[] sendBytes){
try {
os.write(sendBytes);
os.flush();
} catch (IOException ex) {
}
}
请帮助THD
这是您通常从阅读器读取所有数据的方式(直到另一端关闭):
//BufferedReader is
StringBuilder data = new StringBuilder();
char[] buffer = new char[1024 * 32];
int len = 0;
while ((len = is.read(buffer)) != -1) {
data.append(buffer, 0, len);
}
//data will on this line contain all code received from the server
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.