摘要:
之前偶然看见手机会多生成一个tap虚拟设备,vpn程序通过那个设备可以获得系统上其他进程的数据流量,做后续处理,至于为什么流量可以 转发至tap设备呢,我这里搜到安卓一个透明代理的资料。在 Android 4.0 开始,系统提供了一个使用全局代理的方式,那就是 VPNService。 pc上的不一定 阅读全文
随笔分类 - 网络编程
recv死循环
2015-09-12 16:21 by 放作夥, 543 阅读, 收藏,
摘要:
逻辑是不停的recv,结果一直死循环,查了一下当对端关闭连接后,recv原来的端口会返回0,所以recv不止要检查返回值小于0,等于0也要检查。备忘一下。 阅读全文
SIGPIPE
2015-05-20 20:40 by 放作夥, 413 阅读, 收藏,
摘要:
看到很多网络程序都有一段忽略SIGPIPE信号的处理,故总结一下。第一次对其disconnected socket调用write方法时, 如果发送缓冲没问题, 会返回正确写入(发送). 但发送的报文会导致对端发送RST报文, 因为对端的socket已经调用了close, 完全关闭, 既不发送, 也不... 阅读全文
http服务器怪事
2015-05-03 21:03 by 放作夥, 181 阅读, 收藏,
摘要:
上网见到有个人说他的http服务器会莫名crash,下载下来后调了下发现是因为忘记了检测非正常的请求的情况。什么是正常的请求什么又是非正常的呢。正常的就是一个连接请求过来然后下载网页,但是我发现浏览器会同时有很多个连接过来,然后只有一个用来传数据。其他几个建立连接之后就不动了。因为网友的http服务... 阅读全文
TCP再次总结
2015-04-30 10:28 by 放作夥, 186 阅读, 收藏,
摘要:
网络编程是个深水区,远没有看起来那么简单,接触他的人才会深有体会。tcp是个字节流的概念,所以会有更好的传输控制,不同于ip层只有包交换的概念。tcp包最大传输单元叫MSS,链路层的叫MTU,不是一个概念,不要混淆。接收端一般就是这样的动作 while (read(........... 阅读全文
TCP是可靠传输,为什么应用层还要做校验
2015-04-25 21:55 by 放作夥, 1637 阅读, 收藏,
摘要:
之前一直有过这个困惑。目前我看到的一个比较好的解释是对于TCP层来说,只是数据流的概念,数据的逻辑语义没有保障,像数据的正确性则没有保证,比如说数据有没有被篡改,算是对应用层的一种保护吧。还有一点我自己想到的是,比方说你有一个文件服务器,tcp确实保证了每一个tcp封包到达,但是你的应用程序的正确性... 阅读全文