Разрыв соединения UDT во время recv

Мой код прекрасно работает в 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.

здесь мое соединение разрывается, и ошибка говорит, сокет закрыт, не существует

if (UDT::ERROR == (rs = UDT::recv(serv, data_read_TCP_Style.retdata() + rsize, size - rsize , 0)))
{
cout << "recv:" << UDT::getlasterror().getErrorMessage() << endl;
}

почему разрывается соединение только во время recv? что может повлиять на соединение?

1 ответ

set rendezvous = false, возможно, удастся решить этот вопрос.

Другие вопросы по тегам