CAsyncSocket::Create

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

返回值:
如果函数成功,则返回非零值,否则为0。通过调用GetLastError获取错误代码。以下是应用于此成员函数的错误:
WSANOTINITIALISED成功的AfxSocketInit必须在使用此API之前发生。
WSAENETDOWNWindows套接字工具测试出网络失败。
WSAEAFNOSUPPORT不支持特定的地址体系。
WSAEINPROGRESS成块的Windows套接字操作正在进行中。
WSAEMFILE没有更多的文件描述符是有效的。
WSAENOBUFS没有缓冲空间是有效的。套接字不能被创建。
WSAEPROTONOSUPPORT不支持指定的端口。
WSAEPROTOTYPE特定端口是此套接字的错误类型。
WSAESOCKTNOSUPPORT在此地址体系中,不支持特定的套接字类型。

参数:
nSocketPort套接字使用的已知端口。如果想让Windows套接字选择端口,则此值为0。
nSocketTypeSOCK_STREAM或SOCK_DGRAM。
lEvent位掩码,它指定了应用感兴趣的网络事件的组合。
FD_READ想要接收用于读取的读通知。
FD_WRITE当数据读取有效时,想要接收通知。
FD_OOB想要恢复带外的数据到达的通知。
FD_ACCEPT想要接收将要连接的通知。
FD_CONNECT想要接收连接结果的通知。
FD_CLOSE当套接字被测试关闭时,想要接收通知。
lpszSockAddress指向字符串的指针。此字符串包含了被连接的套接字的网络地址,例如以句点分隔的数字:“128.56.22.8”。

说明:
在构造套接字对象,创建Windows 套接字并且附加它之后,调用Create成员函数。然后,Create调用Bind,将套接字约束于特定的地址。以下是被支持的套接字类型:
SOCK_STREAM提供顺序的、可靠的、全双工的、基于连接的字节流。使用用于Internet地址体系的传输控制协议(TCP)。
SOCK_DGRAM支持数据报。数据报是非连接的,固定的(典型化是小的)最大长度的不可靠的包。使用用于Internet地址体系的数据报协议(UDP)。
注意:
Accept成员函数把新的、空的CSocket对象索引作为它的参数。必须在调用Accept之前,构造此对象。请记住,如果此套接字对象超出范围,连接关闭。对此新套接字对象,不要调用Create。
如果要了解关于流和数据报套接字的更多信息,请参阅联机文档“VisualC++程序员指南”中的“Windows套接字:端口和套接字地址”和联机文档“Win32 SDK”中的“Windows套接字编程指南”。

请参阅:
CAsyncSocket::Accept, CAsyncSocket::Bind, CAsyncSocket::Connect, CAsyncSocket::GetSockName, CAsyncSocket::IOCtl, CAsyncSocket::Listen, CAsyncSocket::Receive, CAsyncSocket::Send, CAsyncSocket::ShutDown