socket 编程bind一个端口和一个socket后,为什么closesocket不能关闭端口呢

jinxi_gao 2002-03-09 01:16:34
socket 编程bind一个端口和一个socket后,为什么closesocket不能关闭端口呢
...全文
221 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfluo 2002-03-10
  • 打赏
  • 举报
回复
你绑定一个端口了的话,当你close这个socket的时候,
这个端口并不是立即释放的,它会等够一定的时间才
会释放,具体的原因请参考Unix 网络编程。
这样的话,当你从新创建使用同一个端口的socket的时候,
就会出现地址已经在使用的错误,所以一般都会在创建了
socket后,设置socket的SO_REUSEADDR的选项,
unix下是
s = socket(PF_INET,SOCK_STREAM,0);
if( !isvalidsock(s) )
{
error...
}
const int on = 1;
if( setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on)))
{
error..
}
然后再执行bind的操作
jinxi_gao 2002-03-09
  • 打赏
  • 举报
回复
我帮定一个端口,然后close调对应的socket
我帮定是端口是随机的,等程序与形一段时间,发现端口打开好多
我有作了一个绑定一个固定端口,然后close,然后再帮定就不成功了
zlq961672 2002-03-09
  • 打赏
  • 举报
回复
在关闭之前,你可以先进行一下判断,然后进行判断,一般都不会有问题的。
zfluo 2002-03-09
  • 打赏
  • 举报
回复
是不是closesocket根本还没有执行,程序就已经死掉了
vtable9999 2002-03-09
  • 打赏
  • 举报
回复
有什么症状?

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧