【解决方法】Socket服务端退出之后端口依旧被占用
索引
- C/C++
- Python
- 结语
说明:以下代码均为Linux环境,我会给出Windows环境的改动。
C/C++
通常情况下,我们写Bind端的话只会设置发送/接收超时,所以会导致一个系统资源占用的问题。
即程序已经执行完毕,但是端口仍然被占用着,且无法杀死进程。
解决方法是在bind
之前
配置setsockopt,用于设置TIME_WAIT的时间。
// Linux写法
int s = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(_sock, SOL_SOCKET, SO_REUSEADDR, &ListenTimeout, sizeof(ListenTimeout));
struct sockaddr_in server;
....(此处省略代码)
bind(s, (struct sockaddr *)&server, sizeof(server));// Windows写法
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&ListenTimeout, sizeof(ListenTimeout));
SOCKADDR_IN server;
....(此处省略代码)
bind(s, (struct sockaddr *)&server, sizeof(server));
其中ListenTimeout在Linux中的单位是秒,Windows中单位是毫秒。
类型原型为unsigned int
Python
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
结语
接下来你就可以愉快的使用Socket了
【解决方法】Socket服务端退出之后端口依旧被占用相关推荐
- Python 套接字-判断socket服务端有没有关闭的方法实例演示,查看socket运行状态
通过 getattr(socket, '_closed') 的返回值可以判断服务端的运行状态. True 是关闭状态,False 是运行中. 实例代码展示: import socketip = 'lo ...
- Netty源码分析系列之服务端Channel的端口绑定
扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,Spring源码分析和Java并发编程文章. 微信公众号 问题 本文内容是接着前两篇文章写的,有兴趣的朋友可以先去阅读下两篇文章: Ne ...
- 【★更新★】高性能 Windows Socket 服务端与客户端组件(HP-Socket v2.0.1 源代码及测试用例下载)...
HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket.现在把 HP-Socket 的所有代码向大众公开,希望能对大 ...
- Java:socket服务端,socket服务端支持多连接,socket客户端,socket客户端支持发送和接受
一.Java之socket服务端 新建一个Java工程 命名 给他先创建一个类 在类里面我们做一个main 这里面也需要,创建套接字,IP号,端口号 但是java中有一个类 Serve ...
- C# Socket服务端与客户端通信(包含大文件的断点传输)
步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤: (1)建立一个Socket (2)接收 ...
- Java高级补充(Socket服务端、客户端)、Handler类、安卓Socket传数据、WebView
Socket服务端简单地API: 主要用到以下几个API:ServerSocket用来设置端口号.accept用来和服务端连接.getInputStream用来获取输入流.read用来读取输入流里面的 ...
- 《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写
一.学习目标 了解C语言的socket的概念 了解C语言socket的使用方法 完成C语言socket服务端 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习 ...
- android socket 服务端,Android socket 服务端
Android socket 服务端 Android 想在Android 上跑一个 socket 服务端.把在java工程里运行起来的代码直接放到android项目里来,开启线程,创建ServerSo ...
- Socket服务端向指定客户端发送消息
Socket服务端向指定客户端发送消息 解决思想 1.项目背景 2.如何上传与下发指令 3.解决方法 4.流程 解决思想 I.指定客户端远程地址是存起来的. II.服务端直接主动发信息给客户端,问题在 ...
- php socket(服务端与客户端)demo
php socket(服务端与客户端)demo完整演示: 环境是:[phpstydy,PHP版本7.3.4nts],一定要开启[sockets]服务. 服务器[index.php](源码复制即可): ...
最新文章
- ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
- 下载安装oracle旧版本oracle 12c的详细步骤
- System.InvalidOperationException: The stream does not support reading
- [CQOI2009]叶子的染色
- 某化大学,教授亲自手把手,从零基础交我们Python利用开发公众号
- 微信小程序实现数字为四位一组间隔(仿银行卡卡号)
- apache camel_令人印象深刻的第一个Apache Camel版本
- 俄罗斯:国家机构今年已遭1000多万起网络攻击
- android 手机内存uri_Android消息机制Handler原理解析
- Unicode字符列表(超完整)
- ppt设置外观样式_ppt设置主题样式的方法步骤详解
- 二维码生成及批量生成并打包
- 硒化钼纳米颗粒/MoSe2 Nanoparticles的介绍 提供氨基/NH2/羧基COOH/PEG/蛋白Protein/抗体antibody功能化修饰的硒化钼纳米颗粒/MoSe2 Nanoparti
- Android8.0替换默认静态壁纸
- 电脑无法连接wifi得解决方法
- Vue 项目中实现的微信、微博、QQ空间分享功能(亲测有效)
- Linux大家族的血缘关系
- 已向反垄断法妥协!谷歌应用商店抽成减半,苹果还会远吗?
- 洛谷 P1007 独木桥
- 职高计算机工作总结范文,职高学习工作总结范文2000字