首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ websockets服务器/客户端跨平台linux/windows

C++ websockets服务器/客户端跨平台linux/windows
EN

Stack Overflow用户
提问于 2016-04-08 22:24:42
回答 1查看 3.2K关注 0票数 2

我试图用Websocket客户机/服务器实现一个示例代码:

  • 在windows和linux上都可以工作。
  • 支持多个客户端
  • 没有额外的依赖关系,纯C/C++易于使用代码

例如,实现像聊天室这样的可以接纳许多用户的东西,对于我理解Websockets如何工作并在我的项目中使用它们来说,将是一个很好的基础。

我看的是本网站,我在C++中看到了Websockets的这个例子。

我使用的是使用MinGW编译器的Clion,并且不存在这些标头:

代码语言:javascript
复制
#include <netinet/in.h>
#include <netdb.h>

自动代码完成表示以下标题:

代码语言:javascript
复制
#include <winsock.h>
or    
#include <winsock2.h>

即使在我的IDE中没有看到带有这些头的错误,但当我运行代码时,我会得到链接错误:

代码语言:javascript
复制
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要简单得多。有人能给我指个正确的方向吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-08 23:06:56

windows与POSIX非常相似,但也有一些不同之处(正如这篇MSDN文章中所解释的那样),以及在使用此API之前必须调用WSAStartup()

关于标题,取winsock2.h。但是,您不应该忘记在项目中包含套接字库( makefile/project参数或作为#pragma comment(lib, "Ws2_32.lib") )。

如果您想要可移植代码,您可能需要考虑boost::asio

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

https://stackoverflow.com/questions/36510279

复制
相关文章

相似问题

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