[英]Socket Programming with MFC
CAsyncSocket 確實支持 IPv6。 有幾種方法可以做到這一點:
但是,我建議直接使用 Winsock 2 API。
這里的代碼對我有用:
LPCTSTR lpszHost = L"::1";
CSocket socket;
int nPort = 1234;
ADDRINFOT addrInfo;
memset( &addrInfo, 0, sizeof( addrInfo ) );
addrInfo.ai_family = AF_INET6;
addrInfo.ai_socktype = SOCK_STREAM;
if ( socket.CreateEx( &addrInfo ) )
{
struct sockaddr_in6 addr;
memset( (LPVOID)&addr, 0, sizeof( addr ) );
addr.sin6_family = AF_INET6;
addr.sin6_port = htons( nPort );
InetPtonW( AF_INET6, lpszHost, &addr.sin6_addr );
#ifdef MY_SOCKET_SERVER
// Server
BOOL bSuccess = socket.Bind( reinterpret_cast<const sockaddr*>(&addr), sizeof(sockaddr_in6) );
#else
// Client
BOOL bSuccess = socket.Connect( reinterpret_cast<const sockaddr*>(&addr), sizeof(sockaddr_in6) );
#endif
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.