开发网络游戏的客户端是否需要多线程

willwl 2005-05-24 10:47:29
开发一个类似联众或QQ网络游戏的客户端,界面已经做好了,准备与服务器进行联机调试,但是我不知道该不该为网络连接这块再创建个线程?因为不熟悉网络编程(协议是另外的哥儿们作的,但他写的说明我看不是很明白,而且好像是命令提示符方式的,没有用到CSocket类,而我的客户端是MFC作的,不知道怎么用他给我写的函数)
单线程的话,那么Socket函数的调用应放在什么地方(控件的事件处理程序中吗,但有的没有什么事件啊,比如游戏室界面的刷新,要始终接收从服务器发来的更新数据,并不是游戏室界面的用户操作,没有事件啊),万一网络慢的话是不是界面的响应也会迟钝
...全文
236 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
surstar 2005-05-24
  • 打赏
  • 举报
回复
单线程的话,那么Socket函数的调用应放在什么地方
-----
InitDialog() 里创建SOKECT,控件(比如连接暗流)的事件处理程序中CONNENT()

有FD_CONNECT ,FD_READ,FD_CLOSE,FD_WRITE 等事件,当然之前要先定义好自定义事件,要WSAAsyncSelect(),这些可以用来处理接收,发送数据~
hjiaming 2005-05-24
  • 打赏
  • 举报
回复
线程肯定是要的,不然网络阻塞会导致客户端失去响应

用WSAEventSelect模型好了,根据具体的网络事件来触发数据通讯,然后解析协议,执行具体操作

clicksoft 2005-05-24
  • 打赏
  • 举报
回复
还是加个线程把
1、本课程是一个干货课程,主要讲解如何封装服务器底层,使用Tcp/ip长连接,IDE使用vs2019 c++开发以及使用c++11的一些标准,跨平台windows和linux,服务器性能高效,单服务器压力测试上万无压力,服务器框架是经历过上线产品的验证,框架简单明了,不熟悉底层封装的人,半个小时就能完全掌握服务器框架上手写业务逻辑。2、本课程是一个底层服务器框架教程,主要是教会学员在windows或linux下如何封装一个高效的,避免踩坑的商业级框架,服务器底层使用初始化即开辟内存的技术,使用内存池,服务器运行期间内存不会溢出,非常稳定,同时服务器使用自定义哈希hashContainer,在处理新的连接,新的数据,新的封包,以及解包,发包,粘包的过程,哈希容器性能非常高效,增、删、查、改永远不会随着连接人数的上升而降低性能,增、删、查、改的复杂度永远都是恒定的O(1)。3、服务器底层封装没有使用任何第三方网络库以及任何第三方插件,自由度非常的高,出了任何BUG,你都有办法去修改,查找问题也非常方便,在windows下使用iocp,linux下使用epoll.4、讲解c++纯客户端,主要用于服务器之间通信,也就是说你想搭建多层结构的服务器,服务器与服务器之间使用socket通信。还可以使用c++客户端做压力测试,开辟多线程连接服务器,教程提供了压力测试,学员可以自己做压力测试服务器性能。5、赠送ue4和unity3d通信底层框架以及多人交互demo,登录,注册,玩家离开,同步主要是教会学员服务器与客户端如何交互。6、赠送c++连接mysql数据库框架demo,登录,注册,玩家离开数据持久化.7、服务器教程使用自定义通信协议,同时也支持protobuf,选择权在开发者自己手里,想用什么协议都可以,自由度高。8、服务器教程使用手动敲代码逐句讲解的方式开展教学课程。非喜勿喷,谢谢大家。9、服务器教程提供源码,大家可以在平台提供的地址下载或者联系我,服务器使用c++11部分标准,std::thread,条件变量,线程锁,智能指针等,需要学员具备一定c++知识,购买前请慎重考虑。
Java泡泡堂网络游戏是一款基于Java开发的多人在线对战游戏,灵感来源于经典的泡泡龙游戏。该游戏具有以下主要设计与实现特点: 客户端与服务器架构: 游戏采用客户端与服务器架构,客户端负责用户交互和游戏画面展示,服务器负责处理游戏逻辑和数据传输。 客户端和服务器之间通过网络通信实现实时数据交换和游戏状态同步。 游戏玩法: 玩家在游戏中扮演角色,通过操控角色射击泡泡进行对战。 游戏地图设计丰富多样,包括不同主题和难度的地图,玩家可以选择喜欢的地图进行游戏。 玩家可以通过收集道具来增强自己的能力,例如增加射速、增加炸弹威力等。 实时对战: 游戏支持多人实时对战,玩家可以与其他玩家组队或进行自由对战。 游戏服务器负责匹配玩家并创建游戏房间,玩家可以在房间内进行对战。 技术实现: 客户端使用Java图形界面库(如Swing或JavaFX)实现游戏画面和用户界面。 服务器端采用Java Socket或者其他网络通信技术实现与客户端的通信,并使用多线程技术处理多个客户端的请求。 安全性和稳定性: 游戏服务器采取安全认证机制,确保玩家信息和游戏数据的安全性。 系统设计稳定可靠,具备容错和异常处理机制,确保游戏服务器的稳定运行。 Java泡泡堂网络游戏通过精美的画面、丰富的玩法和稳定的网络连接,为玩家带来了一种刺激和欢乐的游戏体验,成为了网络游戏爱好者们的热门选择。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧