首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在收到来自HTTP服务器的响应后保持连接活动

在收到来自HTTP服务器的响应后保持连接活动
EN

Stack Overflow用户
提问于 2009-09-18 04:29:14
回答 2查看 756关注 0票数 1

我有一个客户机-服务器系统,其中客户机需要派生一个子对象,并将其pid返回给服务器。在此之后,它必须保持与服务器的连接处于活动状态,通过该连接,它将继续向服务器发送有关该子进程的日志信息,以及它可能希望作为调试信息的一部分发送的其他请求。

我的问题是,如何才能做到这一点?我是否每次都要连接到服务器,向它发送pid并要求它记录请求,因为我可以让多个客户端同时向服务器发送请求,还是有其他方法可以做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-18 04:45:30

你需要比现在更清楚地了解流程结构。服务器进程是否独立于客户端进程保持活动状态?它是否在侦听已知的端口号?客户端的第一个(父)进程何时连接到服务器?

您假设客户端派生一个子进程,然后让服务器知道子进程的PID。孩子是否也与服务器通信?它是打开到服务器的独立连接,还是抢占父进程的连接,还是子进程和父进程尝试共享到服务器的单个连接?如何协调单个连接上的访问?

这种系统的一种常见设置是:

  • 服务器进程作为监听已知或配置的端口的守护程序启动。
  • 初始客户端(父)进程建立与服务器的连接。
  • 辅助客户端(子)进程断开继承的连接并建立自己与服务器的连接。

这些连接有两种操作模式:

  1. 客户端进程每次打开连接,编写消息,可能等待响应,然后关闭连接。这是web浏览器使用的机制,因为web提供了无状态的connections.
  2. The客户端进程打开连接并使其保持打开(服务器不会关闭连接,直到出现紧急情况或客户端同意(或请求)关闭连接)。此机制通常由连接到数据库服务器的数据库客户端使用。

这两种模式都有效-它们对开销(如果每次连接都需要很长时间)和资源使用(持久连接占用服务器中的更多资源;客户端不会受到严重影响)有不同的影响。

票数 2
EN

Stack Overflow用户

发布于 2009-09-18 04:41:21

如果客户端和服务器之间没有带超时的有状态防火墙/NAT,则TCP连接将无限期持续,不需要发送任何数据。您可以设置一些套接字选项,这些选项将定期发送不包含任何数据的数据包(如果没有收到响应,则中断连接)-搜索SO_KEEPALIVE

如果你谈论的是某个特定的超文本传输协议服务器,它可能有一个选项,允许一个没有任何请求的连接持续多长时间,例如apache中的KeepAliveTimeout

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1442603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档