Partager via


CSocket::Attach

Appelez la fonction membre pour attacher le handle d' hSocket à un objet d' CSocket .

BOOL Attach(
   SOCKET hSocket 
);

Paramètres

  • hSocket
    Contient un handle d'un socket.

Valeur de retour

Une valeur différente de zéro si la fonction est réussie.

Notes

Le handle de tête creuse est stocké dans le membre de m_hSocket de l'objet.

Pour plus d'informations, consultez Windows Sockets : Utilisation des sockets avec des archives.

Exemple

class CSockThread : public CWinThread
{
public:
   SOCKET m_hConnected;

protected:
   CChatSocket m_sConnected;

   // remainder of class declaration omitted.
BOOL CSockThread::InitInstance()
{
   // Attach the socket object to the socket handle
   // in the context of this thread.
   m_sConnected.Attach(m_hConnected);
   m_hConnected = NULL;

   return TRUE;
}
// This listening socket has been constructed
// in the primary thread.
void CListeningSocket::OnAccept(int nErrorCode)
{
   UNREFERENCED_PARAMETER(nErrorCode);

   // This CSocket object is used just temporarily
   // to accept the incoming connection.
   CSocket sConnected;
   Accept(sConnected);

   // Start the other thread.
   CSockThread* pSockThread = (CSockThread*)AfxBeginThread(
      RUNTIME_CLASS(CSockThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
   if (NULL != pSockThread)
   {
      // Detach the newly accepted socket and save
      // the SOCKET handle in our new thread object.
      // After detaching it, it should no longer be
      // used in the context of this thread.
      pSockThread->m_hConnected = sConnected.Detach();
      pSockThread->ResumeThread();
   }
}

Configuration requise

Header: afxsock.h

Voir aussi

Référence

Classe de CSocket

Graphique de la hiérarchie

CAsyncSocket::Attach