快速业务通道

XMLSocket 渐进 (上)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11


今天就来点新鲜的....脱离一下后台的使用 :)
因为在网络上都没看到什么使用socket的教程或说明, 大致都只是简单的带过... 而如果只是说明从字典就可以得到的, 再过不久会因为忙而很少来... 就写给大家去慢慢研究吧
首先还是要按步骤来说明, 毕竟使用这个类的人还是很少... 需要从基本介绍说起, 在Flash提供了XMLSocket的类, 允许对服务器直接建立固定的连线, 所以这种固定连线方式就叫socket..我们可以通过这个socket传送或接收xml数据.. 传送数据的管道有两种, 一种大家已经很熟悉了...就是通过后台传送, 后台的连接是通过HTTP(Hypertext Transport Protocol), 这也是最基本的方式, 但这个方式的缺点就在于传送上会延迟... 最显著的例子就是再多人连线的情况下....因为后台需要更新数据了之后再把数据传给所指定的用户端, 所以造成在玩游戏时会断断续续的感觉, 此方法只适合制作在棋类游戏方面.... 另外一种就是我所要介绍的数据通过Socket传送, 你可以使用TCP(Transmission Control Protocol)直接以数据流的方式传送数据到服务器, 至于HTTP和TCP之间什么不同, 而为何TCP比较快呢?? 这个我不多说了... 你们可以去找些关于 Data Communication 或 Networking的书籍.... 然后看看里面怎么说明OSI MODEL的7个结构层, TCP是在Transport Layer, 而HTTP/FTP/SMTP等都在之上....(书籍: Data Communications and Networking 作者:Behrouz A. Forouzan)这本里面说得蛮详细的
再来我们需要一个服务器, 这个服务器需要打开一个端口让客户端进行连接... 会熟悉编程的朋友可以通过C, Perl或Java来编写属于自己风格的服务器, 当然我不会叫大家花时间再去编写了, 因为在网络上已经有提供一些服务器了...在这里提供给大家下载的网址中有些有提供说明:

  • Unity Socket Server -- JAVA, 可以从 http://www.moock.org/unity/ 这里下载到, 当然时常留意moock的朋友应该很清楚, 但需要购买, 试用版本有限制天数, 但功能是完整的... 另外一个免费的就是 http://www.moock.org/chat/moockComm.zip
  • FlashSock -- JAVA, 网址 http://sourceforge.net/projects/flashsock/ Unix 版本
  • AquaServer -- JAVA, http://www.figleaf.com/development/flash5 作者Branden Hall, 所提供的原文件版本已经很久没更新了 :(
  • MultiServer -- JAVA, http://www.shovemedia.com/multiserver/ 这个网址当中提供了使用教程, 我蛮喜欢的, 当中的教程是avatar聊天室的代码..即是以人物代表用户的聊天室 :)
  • Stray -- Perl, http://www.stray.ch/site/laboratory/flash_sockets.HTML
  • Tupps -- Perl, http://www.tupps.com/flash/faq/perlFlashSocketServer.zip
  • Swocket -- Python, http://swocket.sourceforge.net/
  • FlashNow -- C, http://www.nowcentral.com/ 和AquaServer一样蛮旧了 :p

    好啦...那么来开始切入主题吧, 在Flash中提供的XMLSocket很简单, 一个Flash也可以建立多个socket连线, 当然你必须先建立XMLSocket这个类以控制数据, 方法如下: var myConnection:XMLSocket = new XMLSocket();
    再来当然就是针对服务器进行连接, 所以我们会使用XMLSocket这个类所提供的connect()函数, 在字典当中可以得知两个参数的说明... 在这里不多说, 主要是让大家多看看字典, 但记得自己所设定的端口(port)最好是在1024之上, 因为1024以下的多数都是网页软件或组件所使用的端口
    myConnection.connect("www.super-tomato.com", 8888);
    指定了连接对象之后就要判断连接是否成功, 也就是应用onConnect事件 myConnection.onConnect = function(success) {
    if(success) {
    trace("连接成功");
    } else

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号