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上設的服務器,就能傳文件了。
總結
以上是生活随笔為你收集整理的linux socket编程中建立tcp服务器的主要流程(linux socket编程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 3实现k-邻近算法以及 i
- 下一篇: FPGA硬件学习基础知识点总结(1)