首页 您的当前位置:www.6538.com > www.6538.com >

此时客户端给一个RST

发布时间:2019-11-03

  这种环境发生正在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(次信号不成捕捉)给仍然正在运转的法式,这时就和办事器历程终止一样了。