m_ServerSocket.Create(1987,
SOCK_STREAM,
FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
TEXT("127.0.0.1"));
m_ServerSocket.Listen();这样写会错呢?

解决方案 »

  1.   

    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 );BOOL Bind( UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL );这两个函数都有两个相同的函数,一个端口一个地址。如果在Create填好了,在Bind的时候还要填吗?还是在Create那里保持为零值,在Bind的时候再填?
      

  2.   

    Create函数里面已经绑定了。你说出什么错了。
      

  3.   

    如果你想绑定本机的所有IP,你可以不指定一个具体的本机IP地址。
    如楼上所说,Create里面已经默认帮你做了bind操作。
      

  4.   

    Create里面已经默认帮你做了bind操作。如果是 客户端 直接Create()
    就行了
      

  5.   


    不知道,反正Listen时候访火墙没有弹出警告。
      

  6.   


    long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE;
    CAsyncSocket *pSocket = new CAsyncSocket;
    pSocket->Create(1987, 1, lEvent, NULL);
    pSocket->Bind(1987,TEXT("127.0.0.1"));
    pSocket->Listen();
    如果Create那里加最后那个参数不是TEXT("127.0.0.1")。
    使用Listen的时候防火墙没有弹出警告。
      

  7.   

    CAsyncSocket::Create 这个主要是创建一个套接字吗?一定要BInd的时候才绑定一个IP和端口?
      

  8.   

    Create那里写的IP和端口后,函数成员,但调用Listen不行?一定要Bind了之后才能调用Listen,但又说Create里默认做好Bind的工作?没有啊。根本没有做。Listen的时防火墙根本没有弹出有任何信息,反正失败。
      

  9.   


    假如我想绑定特定一个IP呢?Create不是只创建一个Windows Socket套接字,而没做其他工作?
      

  10.   

    Create后是不是调用Bind绑定一个本地有关地址,特定的。
      

  11.   

    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;
    }Create之后Listen应该可以了。但是!!!为什么没有防火墙没有弹出警告!!!
      

  12.   


    m_ServerSocket.Create(1990, SOCK_STREAM, lEvent, TEXT("127.0.0.1"));
    然后m_ServerSocket.Listen();Windowx XP的防火墙为什么没有弹出?判断是成功的,但连接屁了,失败!