首页 文章

regd TCP服务器中的setsocketopt和套接字内存使用情况

提问于
浏览
0

我有一个服务器套接字,可以监听客户端 . 此服务器以无限循环运行 . 处理完每个连接的客户端后,将关闭“已连接的套接字” . 我应该在连接套接字的文件描述符上使用setsocketopt以获得可重用性吗?由于服务器套接字文件描述符永远不会关闭,我希望该套接字始终存在 .

此外,我假设一个侦听服务器套接字被阻止,直到新客户端 Build 连接,因此这不会耗尽内存 . 不是吗?请帮忙 .

谢谢,

2 回答

  • 0

    如果你正在考虑 SO_REUSEADDR ,它不会认为这会给你带来太大的收益 . 创建新的 fd/socket 并不是一项任务 . 你会发现其他瓶颈 .

    但是您可以通过不关闭连接(在服务器和客户端)来优化,以便 same client 可以通过该连接进行下一次请求的通信 . 这将减少您的连接设置时间 .

    是的,默认情况下,侦听套接字阻塞,因此 accept 调用将被阻止 . 而且,这不会占用太多内存 . 您可以将其设置为非阻塞,并使用 pollselect 来确定新的传入连接 .

  • 0

    您似乎不知道SO_REUSEADDR的用途 . 它没有你归于它的神奇属性 . 套接字将存在,直到您关闭它 . 在大多数情况下,任何套接字描述符都不需要SO_REUSEADDR . 如果您没有收到绑定错误,则根本不需要它 .

相关问题