linux socket编程中建立tcp服务器的主要流程(linux socket编程)

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上设的服务器,就能传文件了。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注