Функция send () сокета C ++ вызывает системную ошибку 10053


Я пытаюсь отправить сообщение с моего клиента на мой сервер (в настоящее время они оба работают в одном процессе, но я не думаю, что это имеет значение).
Соединение установлено хорошо (я вижу это с "CurrPorts" - намного удобнее, чем TcpView). Но затем, когда я отправляю сообщение, я получаю сообщение об ошибке:
«Установленное соединение было прервано программным обеспечением на вашем хост-компьютере». (номер 10053)
а потом соединение разрывается ...

вот соответствующий код:

bool Client::Send(void* msg, int size)
{
    int sockId = m_socket.GetId();
    struct sockaddr_in remote = m_socket.GetRemotePoint().GetBasePoint();
    const char* buf = (const char*)msg;
    int error = send(sockId, buf, size, 0);
    //int g = GetLastError();
    //if (g != 0)
    //{
    //  g = g;
    //}
    return (error != -1);
}

Кто-нибудь знает, что происходит?
спасибо :)


person Idov    schedule 20.03.2011    source источник
comment
опубликуйте соответствующий фрагмент кода.   -  person Mat    schedule 20.03.2011
comment
часть с командой send?   -  person Idov    schedule 20.03.2011
comment
у вас есть несколько потоков в вашей программе?   -  person Mat    schedule 20.03.2011
comment
Да. как в клиенте, так и на сервере.   -  person Idov    schedule 20.03.2011
comment
ну, здесь нет ни малейшего понятия. как насчет клиентского кода?   -  person Mat    schedule 20.03.2011


Ответы (2)


Это WSAECONNABORTED, что означает, что ваш локальный компьютер прервал соединение. Возможно, проблема с брандмауэром?

person Ben    schedule 02.04.2011

Я такой тупой ...: /
У меня есть этот класс MySocket, который я создаю во время Accept, но в его деструкторе я ЗАКРЫВАЮ socekt.
спасибо всем :)

person Idov    schedule 03.04.2011