Condividi tramite


CAsyncSocket::Create

Chiamare la funzione membro Crea dopo la costruzione dell'oggetto socket per creare un socket di Windows e per associarlo.

BOOL Create(
   UINT nSocketPort = 0,
   int nSocketType = SOCK_STREAM,
   long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
   LPCTSTR lpszSocketAddress = NULL 
);

Parametri

  • nSocketPort
    Una porta nota da utilizzare con i socket, oppure 0 se si desidera Windows Sockets per selezionare una porta.

  • nSocketType
    SOCK_STREAM o SOCK_DGRAM.

  • lEvent
    Una maschera di bit che specifica una combinazione di eventi di rete a cui l'applicazione viene modificata.

    • FD_READ desidera ricevere la notifica conformità per leggere.

    • FD_WRITE desidera ricevere la notifica conformità per scrivere.

    • FD_OOB desidera ricevere la notifica dell'origine dati fuori banda.

    • FD_ACCEPT desidera ricevere la notifica delle connessioni in ingresso.

    • FD_CONNECT desidera ricevere la notifica di connessione completata.

    • FD_CLOSE desidera ricevere la notifica della chiusura di socket.

  • lpszSockAddress
    Un puntatore a una stringa contenente l'indirizzo di rete di socket collegato, un numero tratteggiato come "128.56.22.8". Passare la stringa NULL per questo parametro indica che l'istanza CAsyncSocket deve ascoltare l'attività client tutte le interfacce di rete.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario 0 e un codice di errore specifico possono essere recuperati chiamando GetLastError.Gli errori seguenti si applicano a questa funzione membro:

  • WSANOTINITIALISED Al AfxSocketInit deve verificarsi prima di utilizzare questa API.

  • WSAENETDOWN che l'implementazione di Windows Sockets ha rilevato che il sottosistema di rete non è riuscita.

  • WSAEAFNOSUPPORT la famiglia di indirizzi specificato non è supportato.

  • WSAEINPROGRESS che blocca l'operazione di Windows Sockets è in corso.

  • WSAEMFILE non più descrittori del file è disponibile.

  • WSAENOBUFS alcuno spazio nel buffer è disponibile.Il socket non può essere creato.

  • WSAEPROTONOSUPPORT la porta specificata non è supportato.

  • WSAEPROTOTYPE la porta specificata è il tipo errato per questo socket.

  • WSAESOCKTNOSUPPORT il tipo specificato di socket non è supportato nella famiglia degli indirizzi.

Note

Crea chiama Socket e se ha esito positivo, chiama Associazione per associare un socket all'indirizzo specificato.I seguenti tipi di socket sono supportati:

  • SOCK_STREAM Viene ordinato, su flussi di byte affidabili, pieni duplex, basati su connessione.Utilizza il protocollo TCP (TCP) per la famiglia dell'indirizzo Internet.

  • SOCK_DGRAM supporta i datagrams, ovvero pacchetti privi di connessione e non di lunghezza massima (in genere piccola) fissa.Utilizza il User Datagram Protocol) (UDP) per la famiglia dell'indirizzo Internet.

    [!NOTA]

    La funzione membro Accetta accetta un riferimento a un nuovo oggetto vuoto, di CSocket come parametro.È necessario costruire l'oggetto prima di chiamare Accetta.Tenere presente che se questo oggetto l'area di validità, la connessione verrà chiusa.Non chiamare Crea per questo nuovo oggetto socket.

Nota importanteImportante

Crea è thread-safe not.Se si chiama in un ambiente multithreading in cui è possibile richiamare contemporaneamente da thread diversi, si consiglia di proteggere ogni chiamata con un mutex o un altro blocco di sincronizzazione.

Per ulteriori informazioni sul flusso e socket di datagramma, vedere gli articoli Windows Sockets: Sfondo e Windows Sockets: Porte e indirizzi di socket e Windows Sockets 2 API.

Requisiti

Header: afxsock.h

Vedere anche

Riferimenti

Classe di CAsyncSocket

Grafico della gerarchia

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown