CSocket::Attach

This method attaches an hSocket handle to a CSocket object. The SOCKET handle is stored in the m_hSocket data member of the object.

BOOL Attach( 
SOCKET hSocket ); 

Parameters

hSocket
Contains a handle to a socket.

Return Value

Nonzero if the function is successful.

Example

// ...
class CSockThread : public CWinThread
{
// ... Other function and member declarations
protected:
  CSocket m_sConnected;
};

SOCKET hConnected;

BOOL CSockThread::InitInstance()
{
  // Attach the socket object to the socket handle
  // in the context of this thread.
  m_sConnected.Attach(hConnected);

  return TRUE;
}

// This listening socket has been constructed
// in the primary thread.
void CListeningSocket::OnAccept(int nErrorCode)
{
  // This CSocket object is used just temporarily
  // to accept the incoming connection.
  CSocket sConnected;
  Accept(sConnected);

  // Detach the newly accepted socket and save
  // the SOCKET handle.
  hConnected = sConnected.Detach();

  // After detaching it, it should no longer be
  // used in the context of this thread.

  // Start the other thread.
  AfxBeginThread(RUNTIME_CLASS(CSockThread));
}