服务器的几种异常终止

服务器的几种异常终止,第1张

这种情况发生在TCP 3次握手刚好完成,服务器TCP将连接放入到已经建立好连接队列中,此时客户端给一个RST,接下来accept返回,不过这时accept返回的是ECONNECTABORT错误这不是一个致命错误。2、服务器进程终止过程如下:a、kill掉服务进程,作为进程善后处理的部分,所有打开的文件描述符被关闭,这导致服务端TCP(注意"服务端"和"服务端TCP"是不同概念)发送FIN给客户端,客户端TCP响应以ACK。b、客户端此时正阻塞在scanf函数(基于上篇中提到的客户端模型),这导致客户端不知道服务端TCP已经关闭连接。c、客户端在scanf返回后调用write向服务端发数据,由于服务端已经被kill掉,所以服务端TCP会发送一个RST给客户端TCPd、客户端在发送完数据后立即调用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(次信号不可捕获)给仍然在运行的程序,这时就和服务器进程终止一样了。

可以尝试安装相关的加速解决,个人比较推荐安装Watt Toolkit来加速。

可能是自己的网络出现的故障,如果在非联网环境下进行游戏是无法使用包括库存,官方匹配,社区市场等功能的,可以暂时先去玩人机模式。

还有一种可能就是官方服务器崩溃,只能游玩人机模式。这种情况是没有办法解决的,可以暂时等一会儿,一直等到服务器正常后再次尝试进行游戏。

《反恐精英:全球攻势》,原名Counter-Strike: Global Offensive,是一款由VALVE与Hidden Path Entertainment合作开发、Valve Software发行的第一人称射击游戏,游戏玩家分为反恐精英(CT阵营)与恐怖分子(T阵营)两个阵营,双方需在一个地图上进行多回合的战斗,达到地图要求目标或消灭全部敌方则取得胜利。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10753040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存