首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ http服务器编程

C++ http服务器编程
EN

Stack Overflow用户
提问于 2012-02-11 02:38:51
回答 2查看 347关注 0票数 3

我正在尝试将数据直接从服务器推送到客户端的php网页。我已经用谷歌搜索过这个问题很多次了,我不想使用ajax推送引擎或其他东西,比如cometD (如果你知道我在说什么)。我想知道是否有任何方法可以将程序放在我的服务器上,将数据发送到所有连接的客户端。我更喜欢用c或者c++或者c#来实现,我可以自己编程,我只是想知道它是不是可能的和如何实现的。

EN

回答 2

Stack Overflow用户

发布于 2012-02-11 08:54:08

也许您不了解HTTP协议是如何工作的。您应该首先记录更多关于它的信息。我将尝试解释如何在您的案例中使用它:

  • Polling:每X秒,客户端将请求一个包含您想要的内容的网页。这是使用超文本传输协议的标准方式:客户端发送GET,服务器发送response.
  • Push:每个客户端都会请求一个网页,但服务器实际上会等待你发送消息。您可以使用此http通道来“推送”数据:客户端发送GET,服务器等待,直到有响应发送

正如您所看到的,我并不是在谈论任何语言实现,只是在讨论如何偏离HTTP协议来做您想要做的事情。推送方法的缺点是您将为X客户端打开X套接字,即使客户端是空闲的。这不会发生在Pull方法中,当响应被发送时套接字是关闭的。

现在,如果您想要执行此操作,则需要从客户端启动连接。这就是"Ajax“部分有用的地方,让我们在jquery中看看:

代码语言:javascript
复制
$.get('/wait_for_message', function(data) {
    alert('My server send:' + data);
})

您的服务器将收到一个GET /wait_for_message HTTP/1.1请求。您可以将此套接字保存在“等待某些东西的客户端”列表中,而不是发送回数据。然后,当需要时,您可以遍历此列表,将数据写入所有套接字,然后tada:所有客户端都将接收数据。

现在这个机制并不容易正确,这就是为什么你可以使用其他人提出的另一个项目的原因。

票数 1
EN

Stack Overflow用户

发布于 2012-02-11 09:03:59

您可以用任何语言编写/修改一个非常简单的web服务器,以格式化和提供来自数据库的数据,甚至可以忽略实际请求是什么。所有你需要做的就是写一个头和数据到一个套接字。您可以通过根据某个列表主动发起连接来执行相同的操作。

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

https://stackoverflow.com/questions/9232963

复制
相关文章

相似问题

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