作者回复: 第一个是为了更好的利用带宽,在发送数据的同时捎带传输ACK报文,这个是和具体场景有关的,并不一定每次都会起作用。
第二个应该是发送窗口和接收窗口的同步报文。
作者回复: 赞,我让编辑把这段加进去。感谢。
作者回复: 哦,这个,基本上有点难哎,头文件可能都不一样,你可以在windows上装虚拟机来跑,或者用cygwin,这样的话跑CLion可能有问题。。。。
作者回复: 把你的错误贴上来,大家一起帮你看看
作者回复: 应该是最上面的TCP层,因为这是TCP层在控制ACK等报文。
作者回复: 当前路径mkdir build就可以了
作者回复: 当前路径mkdir build
作者回复: 这个我不是专家,不过我觉得你可以试着一个一个尝试,碰到问题翻翻msdn
作者回复: 你做的东西挺艰深的哈,有时间可以给大家分享分享。
作者回复: 这个本身就没有确切的答案,主要是对网络协议栈加强整体的认识就可以了。
作者回复: 安装一下最新的Glibc试试?
作者回复: 这个看个人习惯了,我见过用vim开发的,也见过用vs、clion IDE开发的,个人觉得只要释放生产力就行。
我个人是用IDE的,vim只写一些脚本。
作者回复: TCP报文会被拆分成IP报文的,这个是由协议栈帮助完成的。
有两个因素值得考虑,
第一个是缓冲区大小不是你想象那么小的,一般情况下都能容纳下应用层的信息;
第二个是应用程序往缓冲区拷贝数据,不是100%会成功,特别是在非阻塞的情况下,拷贝完之后应用程序需要配合缓冲区情况继续完成没有拷贝成功的部分,不存在数据被截断的情况。
作者回复: 抓包, troubleshooting,需要时间慢慢磨练
作者回复: 已经解决了吧?是C99那个么?还是cmake版本过高?
作者回复: 在CMakeLists.txt里面增加c99的支持:
set(CMAKE_C_STANDARD 99)
POLLRDNORM是<sys/poll.h>里面定义的,你检查一下?
作者回复: 是的,但终归还是一个"伪"模拟环境。