永发信息网

服务器的几种异常终止

答案:1  悬赏:20  手机版
解决时间 2021-02-07 05:06
服务器的几种异常终止
最佳答案
这种情况发生在TCP 3次握手刚好完成,服务器TCP将连接放入到已经建立好连接队列中,此时客户端给一个RST,接下来accept返回,不过这时accept返回的是ECONNECTABORT错误.这不是一个致命错误。
2、服务器进程终止过程如下:a、kill掉服务进程,作为进程善后处理的部分,所有打开的文件描述符被关闭,这导致服务端TCP(注意"服务端"和"服务端TCP"是不同概念)发送FIN给客户端,客户端TCP响应以ACK。
b、客户端此时正阻塞在scanf函数(基于上篇中提到的客户端模型),这导致客户端不知道服务端TCP已经关闭连接。
c、客户端在scanf返回后调用write向服务端发数据,由于服务端已经被kill掉,所以服务端TCP会发送一个RST给客户端TCP.
d、客户端在发送完数据后立即调用read读取数据,由于有第一步的FIN,read立即返回0(表示EOF),然而客户端希望的是收到刚才发送的数据而不是EOF。如果客户端接着往服务端发数据,将诱发服务端TCP向服务端发送SIGPIPE信号,因为向接收到RST的套接口写数据都会收到此信号.
问题的本质在于客户端同时处理两个描述字--套接口和用户输入,程序被单纯地阻塞在一个源上了。这个问题可以通过1、设置非阻塞模式。2、采用select以及epoll处理。
3、服务器主机崩溃
在客户TCP发送数据后,由于接收不到ACK,它将试图一直重传,直到最后放弃,并返回给客户进程一个出错信息。ETIMEOUT表示没有相应,EHOSTUNREACH表示路由器判定主机不可达。
4、服务器崩溃后重启
由于服务端TCP丢失了以前的连接信息,这将导致服务端发送一个RST,而此时客户端阻塞在read函数,这将导致返回一个ECONNECTRESET错误.
5、服务器关机
服务器关机时init进程会先发送SIGTERM(此信号可捕获)给所有进程,再过一段时间发送SIGKILL(次信号不可捕获)给仍然在运行的程序,这时就和服务器进程终止一样了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
泰迪犬什么时候掉毛
帝澳烫染阿明工作室地址有知道的么?有点事想
2017贵州省高考状元的照片
全面屏手机哪个品牌好更值得购买
天麓山商业街在哪里啊,我有事要去这个地方
马蓬山油画工作室地址有知道的么?有点事想过
【寨的拼音】寨的拼音是什么?
求小说男配上位踹飞男主.作者.妖沧海,百度云
沛县朱寨镇黄庄村民委员会地址有知道的么?有
诛仙为什么看不见破碎的星辰
品韵美甲地址有知道的么?有点事想过去
领航人才网,国际人才网,58同城可以设置某些
郑路镇扒牯李幼儿园怎么去啊,有知道地址的么
喷漆在不绣钢上用什么底漆好
网上卖的银条比国际银价还低,是不是真的?
推荐资讯
求大神解答psp pro-c和pro-c2的区别
请 大家比较一下 罗斯 和 杜兰特.谁跟厉害
怎样找适合自己的衣服
澳鹏宾馆这个地址在什么地方,我要处理点事
通菱涉县汽贸地址在什么地方,我要处理点事
饭后,大量的葡萄糖吸收到人体内,此时A. 胰岛
毕节市第一次联考成绩
红盾小区东区停车场地址好找么,我有些事要过
sony/索尼 dsc-wx150 怎么样
罗马时期中国是那朝
有人说谢娜给张杰写过一首歌,是什么歌。
中国建设银行(岚园支行)地址好找么,我有些事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?