簡體   English   中英

使用 MFC 進行套接字編程

[英]Socket Programming with MFC

MFC是否支持Ipv6套接字編程,以便我們可以使用 Microsoft 基礎類連接到具有Ipv6地址的服務器? 我已閱讀此鏈接,但對我沒有太大幫助。

CAsyncSocket 確實支持 IPv6。 有幾種方法可以做到這一點:

  • ConnectEx
  • 綁定
  • 收貨人
  • 發送到Ex
  • 獲取SockNameEx
  • 獲取對等名稱Ex

但是,我建議直接使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM