私のコードは Windows では正常に動作しますが、Mac でコンパイルして実行すると、recv 中に接続が切断されます。
UDT RENDEZVOUSモードを使用して接続していますが、これは完全に機能します
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ソケットでBoostソケットをバインドしています。
ここで接続が切断され、エラーは、ソケットが閉じられ、存在しません
if (UDT::ERROR == (rs = UDT::recv(serv, data_read_TCP_Style.retdata() + rsize, size - rsize , 0)))
{
cout << "recv:" << UDT::getlasterror().getErrorMessage() << endl;
}
受信中にのみ接続が切断されるのはなぜですか? 何が接続に影響を与える可能性がありますか?