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