从技术层面上来说,聊天室与网络游戏,在线测速。其实上都是信息交互技术的一种实例,在线。而这两种实例在原理上却又是相同的,看着网络。说白了就是一句话。服务器(S)接收客户端 (C)发来的数据,2011大型3d网络游戏。再把该数据群发给客户端。当然其中为了适应不同系统的需要,你看在线测速。而加入了一些其它的技术。在线网络电视。而单就C/S系统来说,我不知道4578深圳电台在线收听。聊天室可以称为是一种模型。网络电话在线打。
学过做网页程序的人可能看过一些关于网络聊天室的一些教程,在线大型网络游戏。不过这些教程往往是用脚本语言(ASP,PHP,JSP)开发的,看看4578深圳电台在线收听。而脚本语言的执行是即时的,也就是说,在线网络测速工具。你访问一次网页,想知道在线网络测速工具。这个网页所用的脚本便执行一次,电台。等到这个网页下载完,水果忍者在线玩。脚本的执行也就结束了。用这种技术做成的聊天室有一个无法避免的问题,事实上好玩的3d网络游戏。看着在线。就是说,在线网络电视。我怎么知道有人在聊天室说话了。你看网络游戏在线玩。
解决的办法便是不竭的刷新网页,免费网络在线代理。因为网页只有在重新加载的光阴才会重新执行一次程序,在线网络测速器下载。而只有一次次的执行程序,才能不竭的获取最新收到的消息,工具。刷新的频次(f)越高,tv007网络电视直播。获得的消息就越及时。水果。
大型聊天室和网络游戏中的程序是不可能这样实现的。对于网络电视直播下载。既然浏览器是无状态的,相比看测速。那我何不用一种有状态的连接方式与服务器进行通信呢?对了,就是Socket。学习在线。其实浏览器也是用Socket进行通信的,线网。只不过在每次显示完一个网页后自动断开了这个Socket。而聊天室程序则要保持着这个连接:事实上忍者。服务器在一个特定的端口监听着客户端的Socket连接,阿里通网络电话。每当有一个客户端与服务器进行连接,便建立一个线程,有n个客户端,便有n个线程同时运行,任一个线程有数据,服务器便把这个数据发给所有连接到的客户端,若有客户端丢失连接,或者主动离开,便把这个线程收回。自始至终,服务器端的程序一直在运行着,对服务器的压力大大减轻。
对于真正的大型网络游戏来说,上面所说的技术还是不够节省资源,他们采用线程池来存储所有的用户连接,以减少创建与销毁线程所消耗的资源,同时也并非是一有数据便群发,而是先收集所有的数据然后定时(比如每100毫秒)群发。
网络游戏其实重点在于如何处理数据,如何用数据表达厚实的动作或指令。其实在Fllung burning ash中也能用XMLSocket进行低层通信,与服务器进行系统交换,也就能做网络游戏了。