慕尼黑的夜晚無(wú)繁華
2023-02-23 16:53:22
這段代碼在我的機(jī)器默認(rèn)操作系統(tǒng)上完美運(yùn)行,但在 Docker 中卻不行,而且我沒(méi)有找到任何關(guān)于它的文檔。 clientSocket = new Socket(); SocketAddress sockaddr = new InetSocketAddress(propertyFile.getProperty("tcp.pod.ip"), Integer.parseInt(propertyFile.getProperty("tcp.pod.port"))); clientSocket.connect(sockaddr, 150); clientSocket.setTcpNoDelay(true);在 docker 中不起作用的部分是 clientSocket連接超時(shí)(第二個(gè)參數(shù)),它采用默認(rèn)超時(shí)而不是我傳遞給他的超時(shí)。其他一切都完美無(wú)缺。
1 回答

千巷貓影
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
我們已經(jīng)測(cè)試了幾個(gè)月,但遙測(cè)只是從我們的操作系統(tǒng)通過(guò)兩個(gè)訪問(wèn)點(diǎn)到原型,所以如果因?yàn)樵退劳龆鴽](méi)有收到確認(rèn),我會(huì)看到它(我們用它來(lái)查看是否有通信)
使用 docker,在操作系統(tǒng)和 docker 引擎之間有一個(gè)代理,所以你會(huì)看到總是有連接,因?yàn)?acks 總是從容器到達(dá)操作系統(tǒng)套接字。
在應(yīng)用層實(shí)現(xiàn)keep alive的解決方案(在協(xié)議層不能實(shí)現(xiàn))。
這篇文章更好地解釋了它:找出是否通過(guò) tcp 傳遞了一條消息
添加回答
舉報(bào)
0/150
提交
取消