【发布时间】:2016-07-30 08:20:31
【问题描述】:
我正在尝试使用 Websocket 客户端/服务器实现示例代码:
- 适用于 windows 和 linux
- 支持多个客户端
- 没有额外的依赖,纯C/C++代码好用
例如,实现像聊天室这样可以接受许多用户的东西,将是我了解 Websockets 如何工作并在我的项目中使用它们的一个很好的基础。
我正在查看this website,我看到了这个 C++ 中的 Websocket 示例。
我正在使用使用 MinGW 编译器的 Clion IDE,并且这些头文件不存在:
#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
顺便说一句,这段代码在 C++ 中实现 Websocket 客户端/服务器是否更好?我希望它可以在 Windows 和 linux 上运行,并且没有外部依赖项。只是纯 C/C++。我看到的几个库(如libwebsockets)对我来说太混乱和过于复杂,而且它们缺乏任何文档或任何示例。我没有看懂一行代码。其他语言(如 Java 或 C#)的 Websocket 更直接。有人可以指出我正确的方向吗?
【问题讨论】: