我必须在以下条件下为 2 个应用程序编写服务器客户端逻辑:
- 一个应用程序只发送数据,另一个应用程序只接收这个数据
- 两者都在 C++ 中
- 接收数据的应用程序应该是多平台的,或者至少存在于 Mac、Linux 和 Windows 下
- 我必须只交换数值或一组明确定义的结构,数据包具有致命的简单骨架结构
我希望有一个图书馆可以帮助我保持工作简单。
我想强调一个事实,即我必须只使用sys/socket.h
与套接字编程相关的标头,而没有其他依赖项。
谢谢。
首先,Berkeley 套接字接口确实不难使用,尽管按照现代标准它可能有点笨拙。但是,如果您真的想要一些更简单的东西,那么使用类似 的文本 I/O 怎么样netcat
,完全避免进行套接字级编程并用简单的进程生成和管道替换它?或者让你的“非常简单”的协议成为一个 HTTP 事务,并在客户端上使用一个简单的 CGI 脚本和 curl/wget(或 libcurl)?
有许多简单的方法可以通过网络移动数据,而不涉及繁琐的 C API。选择哪一个取决于你想要做什么。
您的要求有点不一致,因为通常库是依赖项。
满足您其他要求的库:Boost.Asio,http ://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio.html和 ACE(自适应通信环境),http://www.cs。 wustl.edu/~schmidt/ACE.html。
我个人更喜欢 poco 而不是 boost.asio:http ://pocoproject.org/但它仍然是依赖关系!