IOCP编程Post一个AcceptEx,收到客户端连接的事件后,怎么样取得客户端的地址和端口?
AcceptEx( pSrvNode->Socket(),
pAccept->Socket(),
m_IOMem.Data(),
0,
sizeof(sockaddr_in)+16, sizeof(sockaddr_in)+16,
&dwRecv, &pAccept->m_ol );
===》
在Accept事件中,怎么样取得客户端的IP地址和端口呢?
采用的一有连接就返回,不用等到客户端发送数据。
[解决办法]
getpeername()
[解决办法]
setsockopt(acsocket, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (const char*) &listener, sizeof(listener));
之后,就可以getpeername了,否则取不到。
其中,acsocket是新连接的客户端对应的套接字,listener是监听套接字。
[解决办法]
不是有个 GetAcceptExSockaddrs 么?