我们正在努力在Filezilla Client和Filezilla Server之间进行通信,它们之间有两个代理。在两个代理之间,我们有2个tcp连接。
filezilla客户端 - > P1 - 2 ----- P2 - > filezilla服务器。
我们遇到的问题是上传filezilla客户端将整个数据发送到P1,P1将数据发送到P2。但是P2 recv。速度不如P1发送速度快。 P1会在一段时间后关闭连接,但是当P2仍在尝试从P1恢复数据时,它将无法恢复,它将失败。
有没有办法保持soket活着,直到另一端完全恢复数据?
我尝试过使用具有不同超时选项的Linger。但它没有处理所有情况。
我已尝试设置套接字选项keepalive,但仍然存在同样的问题。
有人可以帮忙或建议我吗?
答案 0 :(得分:1)
当P2收到从另一端关闭连接的信息时,它应该从套接字中读取剩余的字节,然后再从其末尾关闭连接。
答案 1 :(得分:0)
感谢您对此主题的贡献,使用SHUTDOWN函数解决了问题....
此致 尼迪