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));
}