- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个监听客户端的服务器套接字。该服务器以无限循环运行。每个连接的客户端处理完毕后,“连接的套接字”就会关闭。我应该在已连接套接字的文件描述符上使用 setsocketopt 来实现可重用性吗?由于服务器套接字文件描述符永远不会关闭,我希望该套接字始终存在。
此外,我假设监听服务器套接字被阻塞,直到新客户端建立连接,因此这不会耗尽内存。不是吗?请帮忙。
谢谢
最佳答案
如果您正在考虑SO_REUSEADDR
,它不会让您为新连接重复使用相同的套接字。另外,我认为这不会给你带来太多好处。创建新的fd/socket
并不是一项艰巨的任务。您会发现除此之外的其他瓶颈。
但是您可以通过不关闭连接(在服务器和客户端)来进行优化,以便同一客户端可以通过该连接进行下一个请求的通信。这将减少您的连接设置时间。
是的,默认情况下监听套接字是阻塞的,因此 accept
调用将被阻塞。此外,这不会使用太多内存。您可以使其成为非阻塞并使用 poll
或 select
来确定新的传入连接。
关于linux - TCP 服务器中的 regd setsocketopt 和套接字内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12035000/
我有一个监听客户端的服务器套接字。该服务器以无限循环运行。每个连接的客户端处理完毕后,“连接的套接字”就会关闭。我应该在已连接套接字的文件描述符上使用 setsocketopt 来实现可重用性吗?由于
在 asp.net MVC View 引擎的上下文中 和 有什么区别。在 MVC2 书中给出如下: 代码块在 View 模板呈现时执行代码。 代码块执行其中包含的代码,然后将结果呈现给模板的输
我是一名优秀的程序员,十分优秀!