- 函数名全部以大写开头,静态方法全部小写,不使用
_
分隔单词 - 类名全部以大写开头
- 成员变量以及成员静态变量统一小写,并在结尾加上
_
- 常量全部大写
对于PDU帧:
- 采用定长帧,帧格式
GBNPDU.h
有详细介绍 - 定长帧中数据包部分长度统一为4KB
对于滑动窗口以及缓冲:
- 使用std::deque进行缓冲,没有缓冲区大小限制
对于连接的结束:
- 双方传输完数据后互相发送Fin包,不携带数据
- 为了简化实现,接收到对方的Fin包后,只保证返回一个ACK,并且没有例如Time_wait的状态,直接结束套接字 这样可能会导致某一方无限重传最后的Fin包
对于套接字接口:
- 套接字接口中,默认阻塞读取并无超时,默认非阻塞写入并且无限重传。写入只会将数据包写入缓冲区 读取结束的套接字返回0。写入已关闭的则抛出异常。
- 其他错误一律以异常进行抛出
- 没有监听状态
其他:
- 日志输出到标准错误输出