相关疑难解决方法(0)

我是否必须在客户端程序中绑定UDP套接字才能接收数据?(我总是得到WSAEINVAL)

我创建一个UDP套接字(AF_INET,SOCK_DGRAM,IPPROTO_UDP通过Winsock的),并试图recvfrom在此套接字上,但它总是返回-1,我得到WSAEINVAL(10022).为什么?

当我bind()的端口,这不会发生,但我已经读到绑定客户端的套接字是非常蹩脚的.

我正在向我的服务器发送数据,该服务器回答或至少尝试过.

Inc::STATS CConnection::_RecvData(sockaddr* addr, std::string &strData)
{
    int ret;            // return code
    int len;            // length of the data
    int fromlen;        // sizeof(sockaddr)
    char *buffer;       // will hold the data
    char c;

    //recv length of the message
    fromlen = sizeof(sockaddr);
    ret = recvfrom(m_InSock, &c, 1, 0, addr, &fromlen);
    if(ret != 1)
    {
#ifdef __MYDEBUG__
        std::stringstream ss;
        ss << WSAGetLastError();
        MessageBox(NULL, ss.str().c_str(), "", MB_ICONERROR | MB_OK);
#endif
        return Inc::ERECV; …
Run Code Online (Sandbox Code Playgroud)

c++ winsock

28
推荐指数
3
解决办法
6万
查看次数

使用sendto/recvfrom而不是使用UDP套接字连接/发送/ recv的目的是什么?

我可以掌握TCP与UDP的概念,但我仍然不知道为什么有两种方式发送UDP数据包,并且我仍然不明白这是否是bind()和accept()的绝对必要. .

networking udp network-programming

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

network-programming ×1

networking ×1

udp ×1

winsock ×1