CSocket中的Create函数调用Socket()函数,此函数创建套接字,并将套接字和一个窗口关联,然后调用bind绑定套接字。
因此如果是客户端代码建议直接调用Socket代码进行创建套接字,而不是调用Create创建套接字,因客户端不需要调用bind进行套接字的绑定。
Socket代码
BOOL CAsyncSocket::Create(UINT nSocketPort, int nSocketType,long lEvent, LPCTSTR lpszSocketAddress)
{
if (Socket(nSocketType, lEvent)) //创建套接字,并设置位异步选择模型
{
if (Bind(nSocketPort,lpszSocketAddress)) //绑定套接字
return TRUE;
int nResult = GetLastError();
Close();
WSASetLastError(nResult);
}
return FALSE;
}
因此如果是客户端代码建议直接调用Socket代码进行创建套接字,而不是调用Create创建套接字,因客户端不需要调用bind进行套接字的绑定。
Socket代码
BOOL CAsyncSocket::Socket(int nSocketType, long lEvent,
int nProtocolType, int nAddressFormat)
{
ASSERT(m_hSocket == INVALID_SOCKET);
m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); //创建套接字
if (m_hSocket != INVALID_SOCKET) //如果创建套接字成功
{
CAsyncSocket::Att