ConnectEx成功后设置SO_UPDATE_CONNECT_CONTEXT

来源:互联网 发布:程序员人肉翻墙条件 编辑:程序博客网 时间:2024/06/12 00:00
客户端在ConnectEx成功之后,调用getpeername获取不到正确信息。
  getpeername之所以取不到正确的内容,是因为ConnectEx返回后,socket相关的属性还没有更新(ConnectEx的特性所导致),你应该调用一下setsockopt更新socket的属性后再调用getpeername。参数是SOL_SOCKET和SO_UPDATE_CONNECT_CONTEXT。   When the ConnectEx function returns, the socket s is in the default state for a connected socket.
    The socket s does not enable previously set properties or options until SO_UPDATE_CONNECT_CONTEXT is set.
     同样,在服务器端,AcceptEx之后也需要setsockopt更新socket属性。
0 0