当前位置: 技术问答>linux和unix
如何清楚linux系统中以退出程序的socket连接?
来源: 互联网 发布时间:2016-01-16
本文导语: 程序退出时,没有正常关闭socket,linux系统会保持socket的连接状态很长时间,这时在运行同样的程序,就会服务端报错“Address already is use”或客户端“Connection refused”。这样测试起来很不方便,有没有办法可以让li...
程序退出时,没有正常关闭socket,linux系统会保持socket的连接状态很长时间,这时在运行同样的程序,就会服务端报错“Address already is use”或客户端“Connection refused”。这样测试起来很不方便,有没有办法可以让linux系统的这种状态立即消失?
|
// set socket
int opt = 1,;;
unsigned int optlen = sizeof(opt);
if(setsockopt(m_sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, optlen) == -1)
{
perror("setsockopt reuseaddr");
return -1;
}
else
{
printf("Setsockopt reuseaddr... OKn");
}
int opt = 1,;;
unsigned int optlen = sizeof(opt);
if(setsockopt(m_sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, optlen) == -1)
{
perror("setsockopt reuseaddr");
return -1;
}
else
{
printf("Setsockopt reuseaddr... OKn");
}