Linux下的套接字开发
Socket development under Linux
以下是我的环境:
- Linux、Ubuntu
- C++/gdb
- Eclipse
我正在实现一个TCP套接字服务器应用程序
在开发/调试时,应用程序可能会在接受连接后终止,并且在打开的套接字正常关闭之前终止;关闭在这种情况下,应用程序的下一次执行将无法绑定到侦听端口,只有在等待一分钟左右后,绑定才会再次成功。
我的假设是,Linux内核有一些清理机制来收集所有未正常关闭的套接字,这解释了为什么我必须等待大约1分钟才能再次绑定端口。
话虽如此,有没有办法避免这1分钟的等待?是否有任何方法可以强制操作系统收集所有未正常关闭的套接字?
任何帮助都将不胜感激。
Nadav在Sophin
当然有,只需在套接字上设置SO_REUSEADDR
SOL_SOCKET
级别选项。
int yes = 1;
if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof yes))
perror("setsockopt");
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 套接字读取后,我在缓冲区中看到意外输入
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- MSG_WAITALL的套接字发送得到了 22 EINVAL
- C++套接字客户端到 Python 服务器未创建连接
- 在不知道套接字的情况下关闭网络连接
- C++套接字对不读/写父/子
- 非更新套接字消息
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- 将"uint8_t"(从套接字读取)隐式转换为"char"安全吗
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- 当客户端在 write() 期间终止连接时,由对等套接字错误重置连接
- Linux下的套接字开发