今天重新写程序测试了tcp的keep alive,貌似可以正常工作。
server: ubuntu 9.10
client: arm 9 linux 2.6.24
Server端启动后,接受新的连接,不做任何操作,只是在sleep,client端程序设置完socket的keep alive选项后,处于阻塞式recv状态。结果通过tcpdump抓包发现,client会隔固定时间向server发送询问状态的空包,服务器端也给回复。可见在linux下此机制是有效的。
之前测试的XP系统,似乎就无效。这取决于协议栈的实现方式。
另:花了两个小时移植tcpdump没有成功,原因是编译器的库uclibc中缺少ifaddrs.h的支持,不爽。
阅读(1046) | 评论(0) | 转发(0) |