SOCKADDR_IN serverInfo;
serverInfo.sin_addr.S_un.S_addr = INADDR_ANY 
serverInfo.sin_family     = AF_INET;
serverInfo.sin_port     = htons( 3333 );   //用任何端口都不行nret = bind( m_sListenSocket, (SOCKADDR*)&serverInfo, sizeof(SOCKADDR) );
if( SOCKET_ERROR==nret );
{
    AfxMessageBox( "绑定失败!" );

    return FALSE;
}///////////////////////////
运行时弹出"绑定失败!" 对话框,但调试时 nret的值为0,而 SOCKET_ERROR 是 -1, 这怎么可能?

解决方案 »

  1.   

    if( SOCKET_ERROR==nret );
    看到这句了吗?把分号去掉,小菜,呵呵
      

  2.   

    多谢楼上顺便再提个问题
    客户端连接时出错 错误代码是10061 --“由于目标机器积极拒绝,无法连接”
    这可能是什么原因引起的呢
    SOCKADDR_IN serverInfo;
    serverInfo.sin_addr.S_un.S_addr = inet_addr( ip );
    serverInfo.sin_family     = AF_INET;
    serverInfo.sin_port     = port;

    int nret = connect( m_sClientSocket, (SOCKADDR*)&serverInfo, sizeof(serverInfo) );
      

  3.   

    serverInfo.sin_port= port;
    我猜是这句,你试试这样
    serverInfo.sin_port=(port);
    网络地址的序列要一样
      

  4.   

    因为对方不让你连那个端口,可能是防火墙禁止.所以将
    serverInfo.sin_port     = port;改为:
    --
    serverInfo.sin_port     = htons(port);
      

  5.   

    你服务器端用了htons这个函数,客户端却没用
    两边要一致,要不都用,要不一个也别用