`

cocos2dx 跨平台 tcp 库

 
阅读更多

ccnet提供的是一套跨3平台 win32 android linux ios 的网络通信解决方案,CSocket封装了提供的IO操作,采用select无阻塞IO读写实现。

CSocket //提供了IO封装,对开发者透明

CNetBean //管理一个TCP长连接的生命周期,读写数据

CStream //提供字节流封装,读写

 

所有需要使用到ccnet的地方,只需要#include "ccnet/net.h" 即可

 

 

管理一个网络生命的周期,需要继承自CNetBean,例如

登陆服务器的连接对象(CLoginNetBean : CNetBean)

游戏主逻辑的连接对象(CLogicNetBean : CNetBean)

地图服务器的连接对象(CMapNetBean : CNetBean)

 

在设置好目标IP地址和端口号之后,就可以调用connect()进行连接,连接成功会调用onConnected(),连接中发生错误onConnectError,连接超时onConnectTimeout,连接超时的时间默认是10秒,根据需求自行修改。

 

继承自CNetBean的网络对象,需要定义DEFINE_SINGLE_FUNCTION(xx)来实现单例。以便在全局使用sharedNetBean()来获得网络对象的实例,另外CNetBean的检测读写操作必须通过调用drive()方法来进行,也就是说,每帧必须要调用drive(),开发者可以注册一个schedule,之后每帧调用drive,如果有ccbase的配合,可以注册一个全局的Looper,在loop的帧调用方法中,调用drive()。

 

write()方法需要传递一个CStream对象,处于连接状态时,在任意的位置调用即可。

onMessage()方法带回一个CStream对象,根据具体的业务逻辑去读响应位置的字节。

 

比较重要的一点,在CNetBean里有一个宏

//接收数据是否开启封包组包算法
#define CLIP_PACKET 1

这个宏开始是来控制长度字节的,如果开启了这个宏表示在发包的过程中,会在数据包之前加4个字节,表示整个数据包的长度,而在收包的时候,会先读取4个字节int,表示之后要收的包的长度,这个算法主要为了解决网络通信的过程中,发的数据包量过大导致粘包的问题。

 
分享到:
评论

相关推荐

    cocos2d-x+socket

    在游戏开发领域,cocos2d-x是一款广泛应用的2D游戏引擎,它以其强大的性能、跨平台支持和丰富的API受到开发者们的青睐。其中,网络通信是游戏开发中的关键部分,特别是在多人在线游戏中,实时的数据交换是必不可少的...

    Cocos2d-x《开心斗地主》棋牌类游戏源码

    Cocos2d-x是一个跨平台的2D游戏开发框架,由C++编写,支持iOS、Android、Windows等多个操作系统。它以其高效、易用的特点,深受游戏开发者喜爱。 在这款游戏中,你可以看到Cocos2d-x的强大功能被充分展示。首先,...

    cocos2d-x + socket

    2. **跨平台兼容性**:cocos2d-x的目标是跨平台,因此在实现socket通信时,需要考虑到不同操作系统(如Android的`socket`库,iOS的`CFStream`,以及Windows的`Winsock`)之间的差异,并进行适配。 3. **socket编程...

    手游欢乐麻将源码Cocos2D

    Cocos2D-X是一个跨平台的2D游戏开发框架,由C++编写,支持iOS、Android、Windows等多平台。它提供了丰富的图形渲染、动画、物理引擎、音频处理等功能,极大地简化了游戏开发过程。Cocos2D-X与Cocos2D-iPhone保持高度...

    Cocos2d-x高级开发教程-网页版

    理解如何配置跨平台项目,并解决各平台特有的问题,是开发跨平台游戏的关键。 10. **扩展和插件**:Cocos2d-x社区提供了众多扩展和插件,如广告集成、社交媒体分享等。学习如何利用这些工具,可以丰富游戏功能,...

    cocos2d-x视频教程之Socket与多线程编程-源码

    在IT行业中,Cocos2d-x是一个非常流行的开源游戏开发框架,它允许开发者使用C++、Lua或JavaScript来创建2D游戏。本教程主要聚焦于Cocos2d-x中的Socket编程和多线程技术,这对于游戏开发特别是网络交互功能至关重要。...

    cocos2d-x2.04横版格斗游戏

    1. **跨平台支持**:Cocos2d-x使用C++编写,通过Lua或JavaScript接口进行脚本编程,实现了一次编写,多平台部署的目标,包括iOS、Android、Windows、Mac、Linux等。 2. **图形渲染**:Cocos2d-x提供了强大的2D图形...

    Cocos2D-X游戏开发技术精解学习

    Cocos2D-X是全球广泛使用的开源游戏引擎,尤其在2D游戏领域,它以其高效、跨平台的特性深受开发者喜爱。本书旨在帮助读者掌握Cocos2D-X的核心技术和实践应用,从而在游戏开发的道路上更加得心应手。 Cocos2D-X引擎...

    cocos2d-x手机游戏开发 源代码

    1. **跨平台**:支持iOS、Android、Windows、Mac、Linux等多个操作系统。 2. **C++基础**:使用C++编写,同时提供Lua和JavaScript绑定,方便不同语言背景的开发者。 3. **渲染引擎**:使用OpenGL ES 2.0进行图形渲染...

    基于cocos2d-x的斗地主毕设论文

    cocos2d-x是一个强大的开源游戏开发框架,支持跨平台开发,适用于iOS、Android、Windows等多个操作系统。它采用C++作为主要编程语言,允许开发者创建2D游戏、UI和其他互动内容。在本毕设论文中,作者李光挺选择了...

    cocos2d-x集成Photon的MMO(大型多人在线)游戏引擎demo

    1. **cocos2d-x基础**:cocos2d-x是基于C++的跨平台游戏开发框架,支持iOS、Android、Windows等多个平台。它提供了丰富的图形渲染、动画、物理引擎、音频处理等游戏开发所需的基本功能。在本示例中,cocos2d-x负责...

    斗地主 cocos2d-x 3

    首先,cocos2d-x是一个跨平台的游戏开发框架,支持包括iOS在内的多个操作系统。它的核心是基于C++的,但提供了Lua和JavaScript的绑定,让开发者可以选择不同的编程语言进行开发。cocos2d-x 3版本对前一版本进行了...

    精通COCOS2D-X游戏开发 进阶卷-565_14177674

    Cocos2d-x是一款开源的游戏开发框架,以其高效、跨平台和易用性深受业界欢迎,广泛应用于移动游戏开发,尤其是iOS和Android平台。 本书的核心知识点涵盖了以下几个方面: 1. **Cocos2d-x基础知识**:讲解Cocos2d-x...

    3d台球帧同步强联网cocos2d-x完整客户端

    Cocos2d-x是一款跨平台的2D游戏开发引擎,它以其高效、易用的特性深受开发者喜爱。在这个项目中,我们将深入探讨如何利用Cocos2d-x 3.10版本,结合Lua 5.1脚本语言,来实现一款3D台球游戏的帧同步和强联网功能。 一...

    cocos2d-x 基于BSD Socket网络通讯模块

    在IT行业中,游戏开发是一个非常活跃的领域,而Cocos2d-x则是一个广泛使用的开源游戏引擎,尤其适合跨平台的移动游戏开发。本模块主要关注的是如何在Cocos2d-x环境中使用基于BSD Socket的网络通信技术。下面将详细...

    Cocos2D 简单游戏源码

    它支持多种编程语言,包括C++、Lua和JavaScript,其中Cocos2D-x是C++版本,适用于跨平台游戏开发。本资源提供了基于Cocos2D-x的一个简单手机游戏的源码,可以帮助开发者了解和学习游戏开发的基础知识。 首先,"网游...

    基于cocos2d-x和Unity 3D的跨平台手机网游通信底层设计源码

    该项目提供了基于C#语言的跨平台手机网游通信底层设计源码,支持cocos2d-x和Unity 3D平台。源码包含1043个文件,涵盖C#、Java、C、C++、Shell等多种编程语言。主要文件类型包括227个C#源文件、167个C#脚本、163个元...

    口袋仙侠cocos2d-x游戏源码

    Cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于iOS、Android以及Windows等操作系统。通过研究这款游戏的源码,开发者可以了解到Cocos2d-x在游戏设计、动画处理、物理引擎、事件处理、场景管理等多个方面的应用...

    《炸弹人》游戏源码-boomerv3-Quick-Cocos2d-x 3.3.zip

    《炸弹人》是一款经典的街机游戏,通过使用Cocos2d-x 3.3框架,开发者可以将其移植到多个平台上,实现跨平台的游戏体验。Cocos2d-x是一个开源的游戏开发框架,它基于C++,并提供了Lua脚本语言的支持,使得游戏逻辑的...

    Cocos2d-X 2.2.1 API 文档

    2.2.1版本是Cocos2d-X发展中的一个重要里程碑,提供了丰富的功能和优化,使得开发者能够更加高效地构建跨平台的游戏。 在"Cocos2d-X 2.2.1 API 文档"中,主要涵盖了以下几个核心知识点: 1. **基本概念**:首先,...

Global site tag (gtag.js) - Google Analytics