易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下阻塞性socket问题

在做Linux下阻塞性TCP部分的Code,遇到一个问题请教一下大家

调用tcp connect前,使用函数
setsocktopt(s, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
来设定tcp connect timeout的时间为5秒

我使用一个不可达的IP做测试,发现connect timeout前会发两次syn报文,这两个syn报文的source port是一样的。请问这是不是Linux系统在connect时自动发的啊,因为我发现两次的间隔是3秒,符合tcp重连的机制

但是我设定connect timeout的时间为30秒时,在超时前也只发了两次的syn包,请问connect期间发送几次syn报文在Linux中是否有设定,是否针对每个socket单独设定呢?

谢谢!
应该是不同的系统设定的重发的间隔时间不一样。

是协议栈自动发送的请求,对于发送间隔不同系统实现不一样

楼主可以把connect的返回值打出来看看,就可以看出是什么错误了。



引用
是协议栈自动发送的请求,对于发送间隔不同系统实现不一样

楼主可以把connect的返回值打出来看看,就可以看出是什么错误了。




connect不成功返回的是-1啊,因为我测试时用了一个不存在的IP地址来测试的

我的问题是为什么我调用一次connect,Linux会发出两次syn包,这个是不是系统本身的重传机制?

我用的一个嵌入式系统调用connect就只会发送一个syn报文

引用
应该是不同的系统设定的重发的间隔时间不一样。


Linux系统上怎么设定connect重发syn包的次数呢?

测试抓包如下图所示



相关问答:

linux 下usb设备驱动问题

linux 下usb设备,在root权限下,设备可以正常找到驱动,
但在普通用户下找不到设备驱动,不知道是什么原因?请高手指教
应该是root为了防止普通用户破坏吧,所以加个权限。。。我的就是

权限问题 root是超级用 ......

linux下连接oracle数据库慢 - Oracle / 高级技术

本来没问题的,但是现在不管用什么工具连数据库都很慢,因为后来服务器中多加了块网卡,而数据库监听设置的还是服务器名,我想会不会是这个问题,请教高手,并询问解决方法!谢谢
自己先顶下

把后加的网卡拿掉在 ......

c语言实现linux time相关函数 - C/C++ / C语言

现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......

linux下载shell解释器问题

我向用户目录下的.bashrc文件export添加了存放脚本文件的路径,然后用vim编写一个简单的shell脚本,运行后报错:”bash:shell脚本名.sh:bin/sh:损坏的解释器:没有该文件或目录“,用sudo aptitude install vim vim ......

用优盘怎样安装Linux iso文件?

我想装一个RedHat 5.3的系统,不用系统光盘,只有一个4G的优盘和RedHat5.3的ISO文件。请问怎样操作把Linux安装到我的250G的硬盘中?我的优盘装有winpe系统,可正常启动。请教高手详解!


问老猿啊。

RedHat 5 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号