gpt4 book ai didi

Java:InputStream.read不等待输入?

转载 作者:行者123 更新时间:2023-12-02 08:08:59 24 4
gpt4 key购买 nike

天哪,我正在开发代理,但套接字的输入流之一很奇怪:

while(true) {
try {
while ((BytesRead = inputstream.read(Line)) != -1) {
OtherSocket.Write(Line, BytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}

我对 OtherSocket 有几乎相同的东西,但在这个上,它不断重复,就好像服务器不断发送数据一样,我猜测 inputstream.read(Line) 不等待输入而是返回 - 1. inputstream.read(Line) 是否有任何原因不等待输入?

最佳答案

我相信在套接字被另一端关闭后,InputStream.read 将继续返回 -1

为什么你想继续尝试从已经从 read 返回 -1 的流中读取数据?这对我来说似乎是错误。如果您想保留 while(true) 循环,您应该在内部 while 循环之后放置一个 break; 语句,这样如果您'我们刚刚成功地正常到达流的末尾,没有任何问题,您可以退出外循环。

顺便说一句,我强烈怀疑在流已经失败后尝试读取它也是一个坏主意。

(我还建议您开始遵循更传统的 Java 命名 - 看到 PascalCase 变量名称很奇怪。看到名为 Write方法也很奇怪- 这肯定不是 java.io.OutputStream 上的东西...)

关于Java:InputStream.read不等待输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7725394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com