gpt4 book ai didi

C++ SFML UDP Socket 向多个客户端接收和发送数据

转载 作者:行者123 更新时间:2023-11-30 03:34:25 25 4
gpt4 key购买 nike

我正在尝试学习网络套接字编程基础知识,但有些东西我无法理解。我的任务是创建工作 MMORPG 服务器-客户端应用程序,其中甚至最多 1000 个客户端可以同时连接到使用 SFML 库的服务器。我从一些简单的东西开始,比如测试数据包、套接字和制作简单的应用程序,比如在控制台聊天和多人井字游戏来完成其他任务。我听说使用 UDP 套接字是实时应用程序(如游戏)的一种方式,所以我试图了解它是如何工作的。在 TCP 套接字中,我只是简单地监听连接,一旦客户端连接,我就可以将他分配给某个套接字,并在我发送数据和识别他的同时继续监听连接。

我不知道如何识别使用 UDP 套接字的客户端。我什至不确定我的方法是否正确。

我认为它应该像这样工作:

1.我创建 UDP 套接字将其绑定(bind)到特定端口。

2.我正在确保客户端获得从服务器接收数据的权限。

3.在循环中,我正在从/向每个客户端接收和发送数据包。

4.如果客户端断开连接,我们为他关闭连接/从客户端 vector 中删除他。

那么我如何使用 UDP 套接字做到这一点呢?它们对于这种架构是必要的吗?此外,如果有任何关于制作具有良好保护和性能的工作客户端-服务器应用程序的好文章,我将不胜感激。提前致谢:)

最佳答案

好吧,我实际上找到了两篇关于在游戏中使用 UDP 套接字和整个网络的好文章:

SFML 游戏开发示例:https://www.packtpub.com/game-development/sfml-game-development-example

作者正在用 C++ 编写 3 个 SFML 游戏,并边做边解释所有内容,使用 UDP 套接字并处理数据包的可靠性。

Gaffer on Games 文章:http://gafferongames.com/networking-for-game-programmers/

关于游戏网络的大量信息。

我希望它对寻找有关 UDP 套接字的线索以及在网络游戏开发中使用它的示例的人有所帮助。

关于C++ SFML UDP Socket 向多个客户端接收和发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42012146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com