国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux Server 終止后立即重啟報(bào)錯(cuò) bind error: Address already in use

這篇具有很好參考價(jià)值的文章主要介紹了Linux Server 終止后立即重啟報(bào)錯(cuò) bind error: Address already in use。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  • 先啟動(dòng)Server,再啟動(dòng)Client,然后使用Ctrl+C關(guān)閉Server,馬上再運(yùn)行Server,會(huì)得到以下結(jié)果:

    bind error: Address already in use
    
  • 這是因?yàn)椋m然Server的應(yīng)用程序終止了,但TCP協(xié)議層的連接并沒有完全斷開,因此Server不能再監(jiān)聽同樣的端口

  • 使用netstat命令可以查看,Server終止時(shí),Socket描述符會(huì)自動(dòng)關(guān)閉并發(fā)FIN段給Client,Client收到FIN后處于CLOSE_WAIT狀態(tài),但是Client并有終止,也沒有關(guān)閉Socket描述符,因此不會(huì)發(fā)FIN給Server,最終導(dǎo)致Server的TCP連接處于FIN_WAIT2狀態(tài)

  • 我們?cè)偈褂肅trl+C將Client終止掉,Client終止時(shí)自動(dòng)關(guān)閉Socket描述符,Server的TCP連接收到Client發(fā)的FIN段后處于TIME_WAIT狀態(tài);TCP協(xié)議規(guī)定,主動(dòng)關(guān)閉連接的一方要處于TIME_WAIT狀態(tài),等待兩個(gè)MSL的時(shí)間后才能回到CLOSED狀態(tài),MSL在RFC1122中規(guī)定為兩分鐘,但各操作系統(tǒng)的實(shí)現(xiàn)不同,Linux上一般為半分鐘

  • 由于我們先終止了Server,所以Server是主動(dòng)關(guān)閉連接的一方,在TIME_WAIT期間仍然不能再次監(jiān)聽同樣的Server端口

  • 在Server的TCP連接沒有完全斷開之前不允許重新監(jiān)聽是不合理的,因?yàn)榍昂骃erver占用的是同一個(gè)端口,但不一定是同一個(gè)IP地址

  • 可以通過setsockopt()設(shè)置Socket描述符的選項(xiàng)SO_REUSEADDR為1,表示允許創(chuàng)建端口號(hào)相同但I(xiàn)P地址不同的多個(gè)Socket描述符文章來源地址http://www.zghlxwxcb.cn/news/detail-721973.html

到了這里,關(guān)于Linux Server 終止后立即重啟報(bào)錯(cuò) bind error: Address already in use的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包