zoukankan      html  css  js  c++  java
  • Delphi IOCP UDP完成端口服务端——网络高速传输数据文件系统架构

       嗯,是的,标题有些那个,不过浏览器搜索出来的几乎全部是C++的,Delphi这块完全是空缺的。

       不知道各位Delphi的爱好者们有没有关注腾讯这段时间的各种信息推广。涉及到各方面的行业。

       不过我最佩服的是他们的实时各种网络行为,不得不说,他们的服务器确实牛逼,各种实时网络视频各种交互都是相当流畅的。

       除了TCPIOCP完成端口成型之外,在这个基础上,继续调试出了UDPIOCP完成端口系统,弄这个玩意就是想做一个能够在目前这种复杂无比的网络中,能够完成游戏资源实时更新的一个高并发服务系统。

       现在的网络简直复杂得像一堆牛屎那样,你看看你桌面上的任何一个程序,有几个是不联网的?几乎没有吧!现在的玩家有几个电脑上面是不同时打开几个程序的,QQ,各种音乐播放器,各种视频播放器等等,这些都是抢夺带宽最厉害的玩意。所以传统的TCP协议的网络传输系统已经很难符合目前这种复杂的环境了。

       UDPIOCP完成端口这个玩意,构建起来不容易,网上能用的代码,一句话:没有!不相信,自己搜索搜索。

       这个玩意比TCP完成端口还复杂。

         两个控件,一个UDP服务端,一个UDP客户端,至于客户端是自己新写的,内含两种设置,一种是采用常规TCP那样的链接模式,一种是非链接模式,可以设置阻塞或者异步传输。

         上面客户端采用定时器,值设置为10,这种速度发送消息比较快了,上面是两者的CPU占用情况。在完全没有优化之下,其实是非常暴力的。

         整个控件完全保持原生态,只做错误对应策略,不掺合各种,比如包检测,包重传,采用哪种传输模式等等,这些都会放到外部去。也就是说,没有各种脑子进水的各种加加加。一个字,系统稳定才是最重要,做到了这一点,无论使用在哪种场合下,都能让人放心。因为流程就是这个流程。

        我希望这个系统能够胜任在游戏资源实时更新,比如游戏微端,所谓的轻客户端方面以及实时视频更新啦,各种监控系统啦这些环境下,这样就够OK了。

        代码呢,就不写了,毕竟关注delphi的人,在国内已经很少了。算了,不写了。

  • 相关阅读:
    java:LeakFilling (Linux)
    java:redis(redis安装配置,redis的伪集群配置)
    java:Linux(简单命令,远程ssh使用hostname访问,.免密钥登录配置)
    java:easyui(重点示例)
    任意文件下载漏洞学习
    Centos7 nginx报错403 forbidden
    Centos7 nginx提示错误 Access denied.
    Python问题:UnboundLocalError: local variable 'xxx' referenced before assignment
    PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现
    Python问题:'Nonetype' object is not iterable
  • 原文地址:https://www.cnblogs.com/GameDelphi/p/9162051.html
Copyright © 2011-2022 走看看