我正在尝试学习网络套接字编程基础知识,但我无法理解某些内容。我已经完成了创建工作MMORPG服务器 - 客户端应用程序的任务,即使使用SFML库,也可以同时将多达1000个客户端连接到服务器。我从一些简单的东西开始,比如测试数据包,套接字和制作简单的应用程序,比如在控制台和多人游戏中进行聊天以进行其他任务。我听说使用UDP套接字可以用于游戏等实时应用程序,所以我试图理解它是如何工作的。在TCP套接字中,我只是在监听连接,一旦客户端连接,我就可以将他分配给某个套接字并在发送数据并识别他时继续监听连接。
我不知道如何使用UDP套接字识别客户端。我甚至不确定我的方法是否正确。
我认为它应该像这样工作:
1.我创建UDP套接字将其绑定到某个端口。
2.我确保客户端获得从服务器接收数据的权限。
3.在循环中,我正在接收每个客户端并向每个客户端发送数据包。
4.如果客户端断开连接,我们将关闭他/从客户端向量中删除他。
那么我如何使用UDP套接字执行此操作?它们是否需要这种架构?此外,我将非常感谢任何有关使用有良好保护和性能的客户端 - 服务器应用程序的好文章。在此先感谢:)
答案 0 :(得分:1)
好的,所以我发现了两篇关于在游戏中使用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套接字的线索以及在网络游戏开发中使用它的例子。