查看: 1151|回复: 0

【GoFast】6.物联网之基础 - TCP Client

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-9-30 11:29:32 | 显示全部楼层 |阅读模式
    分享到:
    上一次说到了建立一个TCP的Server,但是由于磁盘读写速度的限制,不适合保存大量数据到本地。那么它能干什么呢?
        有Server就会有Client,一个Server上也可以发起多个Client,这样就解决保存数据的问题了。Server收,Client发,就把数据转走了:-)
        把处理大量数据的工作放到高性能的服务器上,而FirePrime承担多连接的问题,将上万个并行的连接变成串行的数据转发给数据处理服务器,就是这个Server-Client库的功能了。当然不仅仅局限于此,以此库为基础其他功能可任意扩展。
       
        回到正题,开始说说Client的使用方法。其实和Server是一样的:创建、设置参数、三个事件。

         这是创建的,需要指定服务器IP和端口号
       

        这是事件,分别是Client连接到服务器,接收到服务器发送的数据和断开连接。
        如果因为意外情况导致连接断开了,应该做一下自动重连,在断开事件中再次Connect。
       
        为了减少库文件的数量,我将这个Client和Server放在了一个文件中。
        这样做的另一个目的是为了复用。Server中每一个收到的Accept,其实就是创建了一个Client,但这个Client是在Server类的内部使用,而不是用户单独创建的Client,不要混淆。
       
        部分实现的代码


        同理,TCP.go中所有大写开头的函数都是可以被外部调用的,不再单独说明了。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 01:19 , Processed in 0.108669 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.