真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

tcp服務(wù)器異常情況-創(chuàng)新互聯(lián)

服務(wù)器提供回射服務(wù)(將客戶(hù)端發(fā)送的內(nèi)容回送到客戶(hù)端上) tcp服務(wù)器異常情況

1. 服務(wù)器沒(méi)有開(kāi)啟回射服務(wù)

成都創(chuàng)新互聯(lián)專(zhuān)注于湖北網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供湖北營(yíng)銷(xiāo)型網(wǎng)站建設(shè),湖北網(wǎng)站制作、湖北網(wǎng)頁(yè)設(shè)計(jì)、湖北網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造湖北網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供湖北網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

客戶(hù)端啟動(dòng)tcpcli , 調(diào)用connect連接

那么在str_cli 里面的 一write socket 就會(huì)產(chǎn)生SIGPIPE這是因?yàn)閏onnect連接服務(wù)器 服務(wù)器產(chǎn)生RST, 當(dāng)向一個(gè)接收了RST的套接口進(jìn)行寫(xiě)操作時(shí)

會(huì)產(chǎn)生SIGPIPE 此信號(hào)默認(rèn)終止進(jìn)程。

所以客戶(hù)端啟動(dòng)一個(gè)連接沒(méi)啟動(dòng)該端口(服務(wù))的地址,客戶(hù)端輸入后會(huì)立刻返回

2. 服務(wù)器進(jìn)程終止

服務(wù)器與客戶(hù)端正常連接后 在客戶(hù)端套接口沒(méi)有設(shè)置SO_KEEPALIVE時(shí)

服務(wù)器kill進(jìn)程 tcpserv發(fā)送一個(gè)FIN給客戶(hù)端 客戶(hù)TCP返回ACK,但客戶(hù)進(jìn)程現(xiàn)在阻塞與Fgets,無(wú)法得到終止信息

過(guò)些時(shí)候客戶(hù)端再輸入,write套接字,則引發(fā)服務(wù)器發(fā)送一個(gè)RST, 這里就分兩種情況了:

while(fgets()) // 讀入字符串

{

write();  //寫(xiě)套接字

if(read() == 0)  //讀套接子

{ printf("server closed prematurely "); return ; }

else fputs(); //輸出回射字符串

}  

若在write之后立刻調(diào)用read, 則肯定會(huì)讀到FIN先,默認(rèn)為0, 則輸出服務(wù)器過(guò)早關(guān)閉 返回, 沒(méi)來(lái)得及讀入RST

但若在write 之后調(diào)用sleep,那么read時(shí)RST已經(jīng)返回到客戶(hù)端讀緩存中,此時(shí)RST優(yōu)于FIN, 則調(diào)用read會(huì)返回復(fù)位錯(cuò)誤, errno = ECONNRESET

若 在read前面調(diào)用兩次write, 則第一次write引發(fā)RST,(可能要sleep一下等到RST到達(dá)客戶(hù)TCP),第二次write是對(duì)一個(gè)接受了RST的套接字寫(xiě)操作,

則生成SIGPIPE,終止進(jìn)程。

3.服務(wù)器主機(jī)崩潰

正常連接后服務(wù)器主機(jī)崩潰,客戶(hù)端向服務(wù)器發(fā)送數(shù)據(jù), 就阻塞與read調(diào)用,但客戶(hù)TCP一直重傳數(shù)據(jù)分解,想要得到一個(gè)ACK。

一般重傳12次,9分鐘之后才停止(若期間服務(wù)器還是沒(méi)有重啟)。read返回有可能是ETIMEOUT,或者EHOSTUNREACH

4.服務(wù)器主動(dòng)關(guān)機(jī)

當(dāng)unix主動(dòng)關(guān)機(jī),init進(jìn)程會(huì)發(fā)送SIGTERM給所有進(jìn)程,等待進(jìn)程清除和終止,然后就SIGKILL所有進(jìn)程。這種情況就等于第二種,服務(wù)器進(jìn)程關(guān)閉,

自動(dòng)發(fā)送FIN。。。

5.服務(wù)器主機(jī)崩潰后重啟

之前連接的所有信息都會(huì)丟失,當(dāng)客戶(hù)進(jìn)程write,服務(wù)器返回一個(gè)RST響應(yīng)(注意此時(shí)客戶(hù)沒(méi)有接受到FIN,因?yàn)楸罎⒌模?,客?hù)read調(diào)用

返回ECONNRESET錯(cuò)誤。


文章標(biāo)題:tcp服務(wù)器異常情況-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/dsceeo.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部