gpt4 book ai didi

Java 套接字延迟(续)

转载 作者:行者123 更新时间:2023-12-03 11:52:23 25 4
gpt4 key购买 nike

我通过这样的套接字发送ascii:

outputStreamWriter(s + (char) 13);
outputStreamWriter.flush();

在现场,flush() 和通过网络发送的数据之间可能会有 10 到 30 秒的延迟(使用 wireshark 验证)。

为了测试套接字连接,我使用了这个:
public final boolean isConnected() {
try {
socket.sendUrgentData(32);
return true;
} catch (IOException e) {
return false;
}

当我摆脱 sendUrgentData 并在 isConnected() 中返回 true 时,延迟就消失了。

使用协议(protocol)分析器,我注意到我发送的大块数据最终被标记为紧急,就像我发送以测试套接字的单个字节一样。与直觉相反的是,大型紧急数据包最终会被延迟。

有任何想法吗?
谢谢,
安德鲁

最佳答案

I am sending ascii over a socket like this:


outputStreamWriter(s + (char) 13);

不,你不是。该代码甚至无法编译。

In order to test the socket connection I use this



徒劳的。这不会测试套接字连接。它只是发送一些输出。它与写入输出的问题相同:套接字发送缓冲区、重试、超时、接收者的套接字接收缓冲区和接收窗口。它不会告诉您连接是否仍然良好。除了写入连接和捕获 IOExceptions 之外,什么都做不到,这在断开连接后的第一次写入时绝对不会发生。

以任意间隔发送空格的另一个问题是接收者必须理解并忽略它们。可以?

关于Java 套接字延迟(续),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498851/

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