问题标签 [enet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
174 浏览

networking - 在路由器后面托管和访问我的服务器?

我正在测试一个名为 enet 的网络库。当我使用 192.168 在端口 1720 上建立连接时。ips,我的笔记本电脑(客户端)连接到我的电脑(主机)没问题。当我用 PPPOE 连接我的电脑并使用新的 ip (76.86...) 时,我什么也得不到。

我尝试使用 DMZ 将端口 1720 转发到 PC,将其转发到笔记本电脑,但没有任何效果。我可能做错了什么?

谢谢

0 投票
2 回答
1453 浏览

c++ - TCP vs Enet 用于带大厅的在线纸牌游戏?

我正在为 PC 开发一款在线回合制纸牌游戏。它有一个大厅,可以自动更新活动游戏列表,因此我会向许多客户发送许多更新。我将为此准备一个游戏服务器。延迟对我来说不是什么大问题,如果玩家有时必须额外等待 1/4 秒才能显示他们的卡片,我并不关心。我关心的是可靠性和稳定性。我希望能够主持许多 4 人游戏,我也允许人们观看特定的游戏。

我还需要让他们登录,并在他们断开连接时记住他们的会话,以便他们在断开连接时重新进入游戏。

我正在争论的是我是否应该使用基于 UDP 且具有可靠性的 Enet,或者使用普通的旧 TCP/IP。

我最终需要能够以 zip 文件的形式向他们发送其他创建的内容,例如额外的套牌。但为此,我确信有一个库可以帮助我从 HTTP 源获取这些。

如果有人对这两种方法或两种方法都有经验,我将不胜感激您的意见。

谢谢

0 投票
1 回答
1104 浏览

c++ - 将数据发送到 IP 地址列表 - C++

目前,我正在使用enet将每秒更新多次的信息流式传输到提供的 IP 地址/端口列表。我正在为这些地址中的每一个创建一个客户端连接(并且在这些计算机上运行着服务器 enet 主机连接)。

我想知道是否有更有效的方式来发送这些消息(或者只是更好地解决问题)?某种方式我不必为每个连接创建一个 enet 主机?我确实需要可靠的交货。

我只使用 enet,因为它很方便并且在我使用的系统中已经可用。

0 投票
2 回答
1416 浏览

java - 网络库兼容 C 和 Java

我打算开发一款具有多人功能的安卓小游戏。我已经使用 eNet 库在 C++ 中制作了一个服务器框架,我想使用这个框架来制作服务器。

那么,有没有像 eNet 这样兼容 Java 和 C++ 的网络库呢?我知道存在 jEnet(但是 Java-enet-wrapper 非常过时(https://github.com/csm/java-enet-wrapper),它还不成熟。

0 投票
0 回答
139 浏览

c++ - C++ 使用 3rd 方库重新定义宏和函数

我有一个使用几个 3rd 方库的项目。其中使用 GLEW 和 ENet。在尝试编译项目时,它会产生很多关于重新定义函数和宏的错误。如何在不更改库的情况下解决此问题?(我无法将命名空间添加到 Enet,因为它是用 C 编写的)

提前致谢!对不起,我的英语不好!

编辑:

已在评论中要求我添加了错误和警告列表: http: //pastebin.com/LiY8nHX6

0 投票
1 回答
1090 浏览

c++ - 如何链接 ENet 和 MSVC

我正在使用 Microsoft Visual C++(桌面版 VS Express)。我在链接 enet.lib 和 enet64.lib 文件时遇到了困难。这是我所做的:

  1. 下载了最新稳定版本的 tar.gz 文件。
  2. 我将其内容提取到 C:\enet
  3. 在我的 MSVC 解决方案的项目属性中,我:
    • 将 C:\enet\include 添加到 C/C++/General/Additional 包含目录
    • 添加 C:\enet 到 Linker/General/Additional Library 目录
    • 将 enet.lib、enet64.lib、ws2_32.lib 和 winmm.lib 添加到 Linker/Input/Additional Dependencies

我还确保将其放在#include <enet/enet.h>main.cpp 的顶部。该程序运行没有任何错误,但它似乎并没有真正工作。在我的客户端代码中,如果无法连接到服务器,它应该会引发错误,但是当我在服务器未运行时运行客户端程序时,它不会引发任何错误。我是否错误地链接了 ENet,是我使用了错误的版本,还是我只是使用不正确?我废弃了自己的代码并尝试运行我在互联网上找到的示例客户端/服务器,它编译但实际上并没有“工作”。

0 投票
2 回答
3442 浏览

c++ - Windows 上没有从 recvfrom 收到任何内容

我在使用 recvfrom 的 Windows 8 上遇到了一些问题。我有一个绑定到 INADDR_ANY (0.0.0.0) 的套接字,我想在上面接收一些数据包。

问题是我在 Wireshark 中看到了这些数据包,但 recvfrom 从未告诉我接收到的大小大于 0。我尝试将套接字竞价到 127.0.0.1 甚至我的本地 IPv4 地址,但我什么也没得到。使用的端口是 7321(本地)

我使用 ENet 库创建套接字,然后在 recvfrom 中使用该套接字。这是永远不会返回预期数据包的代码。

正如我所说,这有点奇怪,因为 Wireshark 向我显示了数据包(如果你想知道,它们是 STUN 响应)。

有人可以帮我找出可能导致此问题的缺失吗?

0 投票
1 回答
516 浏览

c++ - 通过网络连接发送向量

我在通过 enet 连接发送向量时遇到问题,因为向量似乎用它们自己的数据类型表示,可能指向向量内部数据的实际存储位置,我不知道如何访问它。

客户端和服务器都有这样的数据结构:

数据被发送到服务器,如下所示:

然后服务器接收数据并将其转换为相同的结构,如下所示:

但是,检查变量时,var->type 等于 5,这是正确的,但是当我尝试检查 size() 或向量的任何内容时,它要么使服务器崩溃,要么提供垃圾数据。正如我之前所说,我认为这是因为结构中的向量实际上是一个指针,但是有人知道如何传输和重新组装原始数据吗?谢谢。

0 投票
1 回答
297 浏览

lua - 如何使用 luarocks 安装 enet

我尝试使用 luarocks 为 lua 安装 enet。首先,我从 github 中检查了 enet(库)并对其进行了编译:

这完成没有错误。然后,我通过 luarocks 安装了 enet(lua 绑定):

同样,没有错误。但是,如果我尝试require "enet",它总是会抛出错误:

如果它很重要,我会在 Raspberry Pi 上使用 Raspbian Wheezy 执行此操作。我怎样才能让它工作?

0 投票
1 回答
963 浏览

c++ - 将常量字符数组转换为无符号字符指针的问题

我一直在做一个项目,天哪,天哪,这个项目让我头疼。我正在使用一个名为“ enet ”的网络库,我正在尝试分配连接信息的客户端。使用网站上的教程,我使用:server.event.packet->data = "client info";但是,enet 抱怨该字符串不是“unsigned char *”。这是构建日志(使用clang++编译):

./network.h:9:14: warning: in-class initialization of non-static data member accepted as a C++11 extension [-Wc++11-extensions] int clients = 0; ^ main.cpp:142:28: error: assigning to 'enet_uint8 *' (aka 'unsigned char *') from incompatible type 'const char [12]'; server.event.packet->data = "client info"; ^ ~~~~~~~~~~~~~

我已经尝试了我能想到和搜索过的所有类型的铸造,但似乎没有任何效果。我不能让这该死的东西开心。

主要.cpp:

网络.h:

非常感谢任何想法和帮助。干杯!