读书人

奇怪的bind绑定有关问题

发布时间: 2012-02-13 17:20:26 作者: rapoo

奇怪的bind绑定问题
我的问题是这样的,TCP套接字绑定端口号总是有问题,我绑定的是57000,可是从网络监视软件上看到的是一个4****的一个随机端口
程序没有任何错误提示,返回值也不是SOCKET_ERROR,我又换了其他的一些值,譬如1002一类的,绑定的端口仍然不对
大家帮帮忙~

C/C++ code
//绑定端口    sockaddr_in si;    si.sin_addr.s_addr=htonl(INADDR_ANY);    si.sin_family=AF_INET;    si.sin_port=*port;    //*port=57002            if(bind(c_sever,(sockaddr*)&si,sizeof(si))==SOCKET_ERROR)    {        //绑定错误#ifdef DEBUG        std::cout<<"sever setlocal bind error!"<<std::endl;#endif    return false;    }        //没有产生错误


[解决办法]
探讨
恩,我的client也是连接不上的,但是是这样,我的client的套结字是非阻塞模式下的,因此connect之后会立即返回,我怎么判断是否已经和服务器连接上啦尼?

[解决办法]
si.sin_port=*port; //*port=57002 <===这个地方有错误,sin_port需要网络字节序 htons(*port)

读书人网 >C++

热点推荐