• TCP_DB_中间件_遗留问题


    1、一些经验

      1.1、Delphi客户端中 Block的socket,使用 读取超时的话,会有大约1秒的时间等待...很影响使用体验...于是 放弃超时读取的方式,改为 在每次读取到TCP数据包时 都去做一个判断 是否接收到了一个 完整的TCP包

      1.2、在 socket断开时(不管是 优雅断开 还是 异常断开),接收缓冲区的数据都要 做处理(将它们无效掉 或者 别的处理手段)

    2、JAVA AIO,无法 2次投递accept操作

    3、JAVA AIO,接收操作 :采用接收到TCP数据后 循环超时读取数据 直至读取超时 此时表明暂无数据可以接收了,然后再对 接收到的数据做处理

      3.1、问题:接收操作 一旦超时,这个AsynchronousSocketChannel就处于 超时状态,无法继续 投递接收操作...

      3.2、修改:不使用 超时接收数据的方式,在每次接收到数据之后 都判断是否接收到了一个完整的TCP包,然后在做处理。(类似上面的 1.1中 Delphi客户端中的处理方式)

    4、暂时,只 投递了一次 accept操作,客户端数量多的话,是否够用?

    5、一个AsynchronousSocketChannel 只投递了一个接收操作,大数据量时 是否够用?

    6、

    7、

    8、

  • 相关阅读:
    梯度下降算法实现
    windows10下Anaconda的安装与tensorflow、opencv的安装与环境配置
    在github创建用户
    看完教材不明白的问题
    自我介绍
    HDU 1098(条件满足 数学)
    HDU 1097(m次幂的个位数 规律)
    HDU 1046(最短路径 **)
    HDU 1045(炮台安置 DFS)
    HDU 1034(传递糖果 模拟)
  • 原文地址:https://www.cnblogs.com/javaskill/p/6140046.html
Copyright © 2020-2023  润新知