我试图用Websocket客户机/服务器实现一个示例代码:
例如,实现像聊天室这样的可以接纳许多用户的东西,对于我理解Websockets如何工作并在我的项目中使用它们来说,将是一个很好的基础。
我看的是本网站,我在C++中看到了Websockets的这个例子。
我使用的是使用MinGW编译器的Clion,并且不存在这些标头:
#include <netinet/in.h>
#include <netdb.h>自动代码完成表示以下标题:
#include <winsock.h>
or
#include <winsock2.h>即使在我的IDE中没有看到带有这些头的错误,但当我运行代码时,我会得到链接错误:
CMakeFiles\server_client.dir/objects.a(server.cpp.obj): In function `main':
C:/Users/Shiro/ClionProjects/server_client/server.cpp:44: undefined reference to `listen@8'
C:/Users/Shiro/ClionProjects/server_client/server.cpp:58: undefined reference to `select@20'
C:/Users/Shiro/ClionProjects/server_client/server.cpp:66: undefined reference to `__WSAFDIsSet@8'
collect2.exe: error: ld returned 1 exit status在sidenote上,这段代码在C++中实现Websocket客户机/服务器更好吗?我希望它在windows和linux上都能工作,并且没有外部依赖关系。纯C/C++。我看到的几个库(比如libwebsockets)对我来说太混乱了,太复杂了,而且它们缺乏任何文档或例子。我连一行代码都不懂。其他语言(如Java或C# )中的Websockets要简单得多。有人能给我指个正确的方向吗?
发布于 2016-04-08 23:06:56
windows与POSIX非常相似,但也有一些不同之处(正如这篇MSDN文章中所解释的那样),以及在使用此API之前必须调用WSAStartup()。
关于标题,取winsock2.h。但是,您不应该忘记在项目中包含套接字库( makefile/project参数或作为#pragma comment(lib, "Ws2_32.lib") )。
如果您想要可移植代码,您可能需要考虑boost::asio
https://stackoverflow.com/questions/36510279
复制相似问题