pBuffer->buff,
BUFFER_SIZE - 2*(sizeof(sockaddr_in) + 16),
sizeof(sockaddr_in) + 16,
sizeof(sockaddr_in) + 16,
(SOCKADDR**)&pladdr,
&llen,
(SOCKADDR**)&praddr,
&rlen);
pladdr和praddr總是爲NULL。後來發現sockaddr的內容已經在buff裏面了,只是這個函數沒有返回,所以,只要:
if ( praddr == NULL )
{
pbSockAddr = (PBYTE)pBuffer->buff + (BUFFER_SIZE - 2*(sizeof(sockaddr_in) + 16)) + 10;
pladdr = (SOCKADDR_IN*)pbSockAddr;
memcpy( &laddr, pladdr, sizeof(sockaddr_in));
pbSockAddr = pbSockAddr + sizeof(sockaddr_in) + 10 + 2;
praddr = (sockaddr_in*)pbSockAddr;
memcpy( &raddr, praddr, sizeof(sockaddr_in));
}
這樣就能獲取ip地址了