问题标签 [lidgren]

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 回答
147 浏览

c# - 将枚举转换为字节并发送它们 lidgren

我有这个代码来接收消息:

以及发送它们的代码:

如果消息到达服务器,它只会调用默认值并断开用户连接。

0 投票
0 回答
332 浏览

photon - 托管 Box2D MMO:Photon vs Lidgren vs GameSparks vs PlayFab

我正在开发一个用 C# 编写的游戏,它利用自定义 Box2D/Farseer 实现,并且是基于低级 Lidgren 库的多人游戏。它有一些要求: - Box2D 必须与其他自定义游戏逻辑一起在服务器上运行。

  • 服务器将是权威的。
  • 游戏是实时的,不是回合制的。

我可以重写网络以使用更高级的平台,但我需要帮助了解采取哪条路线。我可以简单地将现有的基于 Lidgren 的服务器作为 Windows 服务托管在 AWS EC2 实例上。这实际上是我目前正在做的事情。但是,我听说使用像 Photon 这样的服务会更高效。PlayFab 和 GameSparks 也可能提供这种联网功能,但似乎它们主要用于帐户管理,而不是传输游戏对象数据。

理想情况下,PlayFab 或 GameSparks 将允许我做所有事情——运行我的自定义 C# 服务器 exe,与他们的帐户 API 集成,并证明我是一个非常高性能的网络库,可以用来代替 Lidgren。我发现很难确定他们是否这样做。它有点参差不齐。

正如我所描述的,哪个是托管 MMO 的最佳平台?

0 投票
0 回答
145 浏览

c# - 断开连接后,lidgren 客户端无法连接

我正在使用 Lidgren 将统一游戏连接到游戏服务器。一切正常。唯一的问题是当客户端断开与服务器的连接时(由于失去互联网连接甚至手动),它无法再次连接。我必须关闭并重新打开游戏才能再次连接。我也在统一之外尝试过这个并得到了相同的结果:

连接方法是这样的:

如果我使用此代码:

客户端已连接,但是当客户端与服务器断开连接时,下面的更新方法仅记录每 5 分钟尝试重新连接一次,但实际上什么也不做:

0 投票
0 回答
51 浏览

c# - Lidgren 客户加入编辑器但未构建

我正在编写一个多人游戏,其中手机上的多个客户端应该能够连接到基于 PC 的服务器。我的编辑器测试一切正常,编辑器客户端连接正常,我现在已经将客户端项目构建到我的手机上,当我按下加入服务器时没有任何反应。

服务器创建方法:

客户加入方式:

当客户端点击回车按钮时应该调用 JoinServer,两个输入框是我输入 IP 和用户名的地方。我一直在使用我的电脑的IPv4地址,从编辑器可以加入的服务器创建方法中获得,但我的手机没有构建。

我现在已经在安卓模拟器上测试了这个程序,但是同样的事情发生了,对连接服务器按钮没有反应。

0 投票
1 回答
167 浏览

c# - Lidgren 第二次创建服务器实例导致 System.Net.Sockets.SocketException

我在 Monogame 中使用 Lidgren。玩家有可能想要主持一场比赛,然后离开大厅,并想再次主持。但是,当我在代码中执行此操作时,会引发以下异常:System.Net.Sockets.SocketException: '通常只允许使用每个套接字地址(协议/网络地址/端口)'

相关代码:

_server.Start()代码在绑定套接字时崩溃。( m_socket.Bind())。

如何清理服务器/套接字,以便再次创建服务器的新实例?

0 投票
1 回答
46 浏览

c# - Sending Int32 equal to 4, received as equal to 67108864

What's going on, I do this on the server:

then on the client it succesfuly reads the byte = 2 and the switch then routes to function which reads Int32 (FreshChunks.Count) which was equal 4 but when received it equals 67108864. I've tried with Int16-64 and UInt16-64, none of them work out the correct value.