我有一个Windows服务器应用程序
我收到WSAEINVAL错误代码,据说这意味着: '套接字尚未绑定绑定,或者套接字未使用重叠标志创建。'
在这种情况下,调用bind()是没有意义的,因为套接字已经与本地和远程地址连接。并且插槽绝对不是用重叠标志创建的。
那么我得到错误的真正原因是什么呢?
答案 0 :(得分:0)
AFAICWO:因为我在侦听TCP套接字上使用accept(),所以我得到的是一个面向连接的套接字。所以我必须使用WSASend而不是WSASendMsg。 MSDN文档确实有这个小问题,这有助于我离开:
WSASendMsg函数只能与datagrams和raw一起使用 套接字。
(或者,可能,但我不确定这一点,我本可以使用WSASendTo。
在面向连接的套接字上,忽略lpTo和iToLen参数; 在这种情况下,WSASendTo等同于WSASend。
)