linux socket默认超时时间?
举例: s=socket(); 设置s为non-blocking; connect(s,..); FD_SET…; rc = select(…, 10s); if (rc == 0) 表示10s超时了。 这个超时的意思是:10s之内,select中所有socket的事件均未产生(如果至少有一个产生,则rc大于0) 注意:这个10s跟connect本身的超时机制完全无关,前者的设置不影响后者。
10s后select的返回,表明10s内connect还没成功,connect可能还在按自己的超时机制(例如慢启动)尝试重连(当然它最终也有个超时)。
至于connect本身的超时是否可以设置,可能各系统不一样。 顺便提醒:connect的socket必须是non-blocking类型,否则,connect会阻塞,也就没必要用select来检测是否连接成功。
另外,那个s要注册到write类型的fd中,即select的第3个参数中。
其他listen,recv什么的,完全类似(但listen,recv本身没有什么超时概念)。
只不过listen的和recv的socket,要注册到read的fd中。
arm开发板上的linux如何通过网口和windows的网口通信,linux中的socket和windows下的socket能通用吗?
在arm上实现ftp,然后windows上设一个ftp服务器(有这样的软件下,很多),arm上找到windows上设的服务器,就能传文件了。