您的位置:首页 > 理论基础 > 计算机网络

ConnectEx成功后设置SO_UPDATE_CONNECT_CONTEXT

2015-08-21 13:27 1171 查看
客户端在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属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息