This documentation is archived and is not being maintained.


Call this member function to get the local name for a socket.

BOOL GetSockName(
   CString& rSocketAddress,
   UINT& rSocketPort 
BOOL GetSockName(
   SOCKADDR* lpSockAddr,
   int* lpSockAddrLen 


Reference to a CString object that receives a dotted number IP address.


Reference to a UINT that stores a port.


A pointer to a SOCKADDR structure that receives the address of the socket.


A pointer to the length of the address in lpSockAddr in bytes.

Nonzero if the function is successful; otherwise 0, and a specific error code can be retrieved by calling GetLastError. The following errors apply to this member function:

  • WSANOTINITIALISED   A successful AfxSocketInit must occur before using this API.

  • WSAENETDOWN   The Windows Sockets implementation detected that the network subsystem failed.

  • WSAEFAULT   The lpSockAddrLen argument is not large enough.

  • WSAEINPROGRESS   A blocking Windows Sockets operation is in progress.

  • WSAENOTSOCK   The descriptor is not a socket.

  • WSAEINVAL   The socket has not been bound to an address with Bind.

This call is especially useful when a Connect call has been made without doing a Bind first; this call provides the only means by which you can determine the local association which has been set by the system.

To handle IPv6 addresses, use CAsyncSocket::GetSockNameEx

Header: afxsock.h