当前位置: 技术问答>linux和unix
网络编程里解决bind绑定的问题?
来源: 互联网 发布时间:2015-10-24
本文导语: 我用c写一个主备机切换的程序。 当程序收到自己是备机的命令后,要关闭socket,然后当收到自己是主机的命令后,再重新连接socket. 我在创建socket以后,使用了bind函数。 因此,每次我从主机状态切换到备机状态,然...
我用c写一个主备机切换的程序。
当程序收到自己是备机的命令后,要关闭socket,然后当收到自己是主机的命令后,再重新连接socket.
我在创建socket以后,使用了bind函数。
因此,每次我从主机状态切换到备机状态,然后再切换到主机的时候,程序就会指出:
bind:address already in use
我想我已经关闭了socket,是不是还需要结束bind,请问怎么结束?谢谢。
当程序收到自己是备机的命令后,要关闭socket,然后当收到自己是主机的命令后,再重新连接socket.
我在创建socket以后,使用了bind函数。
因此,每次我从主机状态切换到备机状态,然后再切换到主机的时候,程序就会指出:
bind:address already in use
我想我已经关闭了socket,是不是还需要结束bind,请问怎么结束?谢谢。
|
Server端执行socket函数后、bind函数前执行一下下面的操作:
int iSockopt = 1;
// 设置Socket属性:SO_REUSEADDR:允许在bind过程中本地地址重复使用
if( setsockopt(ListeningSock, SOL_SOCKET, SO_REUSEADDR, (const char *)&iSockopt, sizeof(int))
int iSockopt = 1;
// 设置Socket属性:SO_REUSEADDR:允许在bind过程中本地地址重复使用
if( setsockopt(ListeningSock, SOL_SOCKET, SO_REUSEADDR, (const char *)&iSockopt, sizeof(int))