我的代码在Windows中工作正常,但是当我在Mac中编译并运行时,连接在recv期间中断。
我正在使用UDT会合模式进行连接,该模式可以完美运行
bool rendezvous = true;
UDT::setsockopt(serv, 0, UDT_RENDEZVOUS, &rendezvous, sizeof(bool));
UDT::bind(serv,socket_.native());
if (UDT::ERROR == UDT::connect(serv, (sockaddr*)&serv_addr, sizeof(serv_addr)))
{
std::cout << UDT::getsockstate(serv);
}
我正在将升压插座与 UDT 套接字绑定。
在这里,我的连接断开了,错误说,套接字已关闭,不存在
if (UDT::ERROR == (rs = UDT::recv(serv, data_read_TCP_Style.retdata() + rsize, size - rsize , 0)))
{
cout << "recv:" << UDT::getlasterror().getErrorMessage() << endl;
}
为什么连接仅在 recv 期间中断? 什么可能会影响连接?
集合会合=假,也许可以解决这个问题。