社区
Linux/Unix社区
帖子详情
socket句柄不能及时释放的问题
think__
2004-02-03 10:28:25
unixware系统,通信服务程序,监听socket或连接socket,在程序关闭或异常退出后马上重启程序,socket创建不能成功,要等一定时间后重启程序,才能正常运行。
请求帮助
...全文
597
11
打赏
收藏
socket句柄不能及时释放的问题
unixware系统,通信服务程序,监听socket或连接socket,在程序关闭或异常退出后马上重启程序,socket创建不能成功,要等一定时间后重启程序,才能正常运行。 请求帮助
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blh
2004-02-03
打赏
举报
回复
注册signal函数,接管SIGINT等信号,在信号处理函数中关闭套结字
sunriselx
2004-02-03
打赏
举报
回复
fierygnu(va_list)能不能说详细点,谢谢
chairou
2004-02-03
打赏
举报
回复
呵呵, fierygnu(va_list) 的方法就可以了,我以前不知道的
时候,还给BIND()自己写了一个bind()失败的话,sleep(5000)
再bind()一次,呵呵,好搞笑
xinyi
2004-02-03
打赏
举报
回复
處理異常退出信號,關了它
fierygnu
2004-02-03
打赏
举报
回复
进入了TIME_WAIT状态。用SO_REUSEADDR选项。
kaederukawacy
2004-02-03
打赏
举报
回复
正常退出是在C/S端都调用CLOSE 关闭 连接的SOCKET 就不会有这种情况
异常退出或者KILL掉后要等待 SOCKET 自己超时是没有办法的
rexp
2004-02-03
打赏
举报
回复
SO_REUSEADDR
选项有关
fierygnu
2004-02-03
打赏
举报
回复
to 楼主:
man setsockopt
fierygnu
2004-02-03
打赏
举报
回复
这个与异常退出没有关系。TCP协议规定有TIME_WAIT状态,这样可以避免网络里延时发送来的包引起错误。
yuanlei1978113
2004-02-03
打赏
举报
回复
在程序关闭或异常退出后你要做收尾工作,
1.shutdown()
2.close()
3.sock = 0;
这样就没有问题了(异常推出要捕捉系统信号)
Algopro
2004-02-03
打赏
举报
回复
int optval = 1;
setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
异步
SOCKET
类,VC版
项目中自己使用的
Socket
类,希望可以帮助到其他人
一个
SOCKET
多线程通信例程
SOCKET
多线程 C++语言 VC6.0环境
打造完整的
socket
池
打造完整的
socket
池
异步
socket
TCP 通信
使用 WSAAsyncSelect 的异步
socket
通信示例
端口占用
问题
的解决方法汇总
经常会遇到一些占有端口的程序突然死掉的情况(特别是tomcat之类),由于程序是异常结束,占用的端口没有
及时
释放
,这时重新再启动程序的话会报端口被占用的异常,无法正常使用,这时候就需要强制的
释放
这个端口。 。。。。。。。。。。
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章