使用.NetCore在Linux上写TCP listen 重启后无法绑定地址
16lz
2021-01-22
拥抱.net core的过程中, 将公司的一套java项目改成了.net core 2.0版的.
里面的tcp服务被我用msdn的SocketAsyncEventArgs方式重写了, 然而在测试的过程中发现, 偶尔会出现重启无法再次绑定监听的情况.
因为缺乏linux上编程的经验, 对linux的认识过于粗浅, 仅凭现有的知识第一反应是, 是不是在asp.net core的结束时没有清理干净, 也不是呀, 在lifetime中记录了日志都清楚地打印了.
打开搜索引擎, 搜linux下socket绑定失败, 找到一条似乎有用的答案, socket options设置reuse address为true.
有道理, 于是在绑定前加了一条:
listener.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.ReuseAddress, true);
更多相关文章
- (SqlServer)分离所有用户数据库
- SQL%NOTFOUND在实际中非常有用
- PLSQL并非所有变量都已绑定
- 绑定本地Service和远程Service并调用其中方法
- Android中bindService的细节之二:从进程的角度分析绑定Service的
- jsp权限菜单绑定的基本实现
- Android有用的代码片段
- Android绑定银行卡提现怎么做?
- 这些片段在Android编程中很有用