1
9
在这里,我试着回答你的一些具体的、事实性的问题,我对此有一些贡献。
是的,你可以在C++中使用任何C套接字库。如果由于链接器报告
符号未找到
对于要使用的库函数,可以通过编辑
要查找库,请转到
http://freshmeat.net/
,并搜索
正如拉斐尔在他的回答中提到的,您可能会发现qt库的socket部分很有用。见 QTCpSocket 供参考,以及 fortune client 例如代码。 阿尔索 Boost.Asio 我突然想到,但它可能有太多的抽象和低级的细节为您公开。
做你的搜索
|
2
4
可能是因为所有的套接字实现都基于原始的C语言Berkeley Socket API,它定义了诸如recv、send、listen、accept、select等函数。 我强烈推荐你看看 提高ASIO。 它是一个跨平台的C++ API,所以开发的任何代码都是可移植的。实际上,您会发现许多其他的boost库对您很有用,它们都是跨平台的。 参考基本API。您可以在Windows和Linux中使用原始的socket c函数。但是,请注意,在窗户下面有一些细微的差别。例如,您必须首先调用wsastartup函数。 对基本套接字编程的一个很好的参考是 网络编程指南 . 我建议你读一读,即使你使用C++ API,因为它能让你了解正在发生的事情。 编辑:老实说,我不再使用BoostAsio了。我发现它慢得可怕。使用libev或类似的,或滚你自己的。BoostAsio在Linux上似乎没有使用epoll。 |
3
4
我开发了一个用于C++的套接字库,但只适用于Windows。 它提供了一个面向对象的实现,带有接收消息的回调! 这是我从客户机建立连接的方式:
这是服务器部分:
如您所见,它实现了接收消息和处理错误的回调。 以下是您感兴趣的GitHub: SocketClient 这是我在博客上的一个教程: Cause You're Stuck |
4
3
我喜欢用qt来编程套接字。它提供了一个面向对象的实现和它的多平台 |
fourthking · GameSparks手动配对 6 年前 |
0x1337 · 如何知道StreamReader何时准备就绪? 6 年前 |
Kavin-K · 如何构建一个简单的多设备聊天应用程序?[已关闭] 6 年前 |
Blazing Forrest · 在JAVA中查找WIFI状态 6 年前 |
Marco · 如何计算R中igraph对象中给定类的顶点数? 6 年前 |
John Conrad Geenty · 读取BPF程序集 6 年前 |