2016-09-15 更新: 加入 PDF 版本网络协议图
去年光棍节的时候,我写过一篇 quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket 。这篇文章介绍了我为何决定在项目中使用 LuaSocket 。
现在想起来,当时对 WebSocket 是很感兴趣的,但由于服务端的限制,最终依然选择了 LuaSocket。我后来对 LuaSocket 进行了封装,使其更好用。
现在,面对一个全新的项目,我自然而然地选择了 WebSocket。
因此,我需要了解下面这些问题:
- Socket 和 WebSocket 有哪些区别和联系?
- WebSocket 和 HTML5 是什么关系?
- 必须 …
2014-01-10更新: SocketTCP 已经进入 quick-cocos2d-x 的 framework.
在 [quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket][1] 一文中,我提到了选择 [LuaSocket][2] 与服务器通信。为了方便使用,我对LuaSocket进行了封装。封装主要做了这样几件事:
- 封装基于 LuaSocket 的 TCP 模式,使用 settimeout 实现异步调用;
- 利用 cocos2d-x 提供的定时器实现失败重连;
- 利用 quick-cocos2d-x 提供的 …
quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket
- 2013-11-17更新:加入SocketTCP和ByteArray类的实现链接。
- 2014-11-05更新:增加范例链接。
- 2014-12-04更新:一篇更详细的文章: Socket 与 WebSocket 。
在 quick-cocos2d-x 中,默认集成了 LuaSocket 和 WebSocket 两个 Socket 库。那么,在开发需要长连接的手机游戏时,应该选择哪个库呢?下面从几个方面进行比较:
- 跨平台;
- 易用性;
- 性能;
- 流量;
- 灵活性;
- 二进制编码;
- 服务器实现。
原文地址:http://blog.csdn.net/gideal_wang/article/details/4316691 原文作者:gideal_wang
感谢原文作者写出这篇通俗易懂的文章。转载过程中,对格式和部分用语做了修改。
一 原理区别
一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。
URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而 …
阅读更多转自:http://caihx.javaeye.com/blog/605143
套接字基础
1. 介绍
多数程序员,不管他们是否使用 Java语言进行编码,都不想知道很多关于不同计算机上的应用程序彼此间如何通信的低级细节。程序员们希望处理更容易理解的更高级抽象。Java程序员希望能用他们熟悉的 Java 构造,通过直观接口与对象交互。
套接字在两个领域中都存在 ―我们宁愿避开的低级细节和我们更愿处理的抽象层。本教程讨论的低级细节将只限于理解抽象应用程序所必须的部分。
阅读更多转自:http://blog.csdn.net/zsnlovewl/archive/2009/12/12/4991820.aspx
1、TCP连接
要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即 …
阅读更多在使用ActionScript3的NetConnection类连接Flash Media Server或者Remoting的时候,需要注意以下几点:
1.注意设定AMF版本
ActionScript3默认使用的是AMF3,而ActionScript2和ActionScript1使用的是AMF0,如果不指定NetConnection的AMF版本,就会出现连接失败。指定的方法如下:
1NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;上面的代码会修改所有的NetConnection实例的默认AMF版本。
如果只需要修改一个NetConnection实 …
阅读更多问题:
将一个视频聊天室系统从FCS升级到FMS,目前的客户端是Flash player 8,客人从浏览器登陆后,选择一个聊天室进入,此时会弹出一个新窗口,聊天室就在新窗口中。但是当关闭聊天室的时候,却并没有触发FMS程序中的onDisConnect事件,客人仍然可以听到聊天室中的声音,必须关闭所有的浏览器窗口,才会完全退出聊天室。
阅读更多