Answers:
任何网络软件都只会通过套接字发送和接收消息,仅此而已。您可以使用任何语言来执行此操作,这不是特定于语言的。
但是,您最好不要为这种工作而重新发明轮子,因此大多数用于Web应用程序的语言都有一套框架,可以为您进行基本的交流,从而使您可以专注于项目的特殊性。Ruby具有ROR,Python具有Django等,Java具有...等。
直到最近,C ++一直没有类似的框架:
现在,必须构建Google的“荒谬的C ++”,因为您需要具有非常高性能的模块来解决Google解决的问题。如果没有用专注于性能的语言编写任何模块,尝试做同样的事情,祝您好运。我建议阅读有关此主题的CPPCMS Wiki,以更好地理解。出于历史事实,亚马逊,谷歌,Facebook(请参见Hip Hop和Alexandrescu的最新访谈)和其他一些真正的大型Web服务的确具有C ++内核,这是显而易见的计算原因,比浪费程序员效率的时间更为重要。
CPPCMS和cpp-netlib是开源的,如果您想了解如何使用C ++使应用程序作为Web服务工作,则可以进行研究。也就是说,任何可以侦听端口并将数据发送到端口的应用程序都可以执行此操作,这全都与协议(TCP / IP,HTTP等)有关,而不是代码。
像其他任何语言一样。
打开一个TCP套接字,发送和接收http消息。解析它们并根据内容进行处理。
在Qt上查看有关支持某些基本http功能的c ++框架的示例。
还有一些专用于C ++的Web框架。AFAIK既不多也没有广泛使用。可能是因为如果您是通过C ++进行网络开发,那么您无论如何都在做非常专业的事情,并且想要对所有内容进行完全控制。
从客户端的角度来看,如果您有C / C ++程序,并且想使用它与Internet通讯,则可以使用libcurl。这几乎是一个标准(全面)的库,用于连接到http url以发送和接收数据。还有其他几种库-微软有一些,还有一些开源的。
现在,这是通过HTTP(或SMTP,FTP,或Gopher或.. libcurl非常全面的!)上的普通旧URL的。如果您尝试通过SOAP使用Web服务,则可以使用许多其他库之一,例如gsoap。
对于服务器端,您需要一个公开C ++代码的Web服务器或框架。同样,有很多方法可以做到这一点-最早的Web程序都是C / C ++,编写为CGI程序,其中Web服务器使用IPC形式调用您的应用程序。从那时起,我们有了Wt,Qt,cppCMS,ffead,以及Microsoft的所有产品(ISAPI,ATLServer和现在的Casablanca)。
我认为no-onne真正使用C ++进行Web编程的原因是因为其他语言已预先打包在这些库中。C ++(一如既往)必须找到要使用的库,而PHP可以随时用于网络。