1、服务器从listen状态变成close状态的原因:
服务器在监听端口的时候,此时有些资源加载的有问题导致服务没开启,此时服务器会从listen状态变成closed状态。
因此,服务器在初始化时候,最好不要打开联网的端口。
2、服务器从listen状态转成syn sent状态的原因:
这个状态比较奇怪,服务器在监听的时候,却向其他地方发送消息。我本来是监听别人的,却主动去连接别人。
出现这种问题,是因为代码的编码有问题。
3、RST状态
情况一:
比如说服务器要打开80端口,由于某种原因,我们并没有打开这个服务。应用程序默认寻找80端口,但是找不到对应的服务,此时底层会给服务发送一个RST
情况二:
请求超时时。当连接的处理时间超过了设定的时间,客户端或者服务端会给对方发送一个RST,表示不要连接了。着可能使我们的程序设置上有一些bug导致的。
情况三:
应用程序有bug。处理了一部分消息之后,程序误以为客户端出现问题,然后主动停掉了对于客户端的服务。此时处理了一半的消息就断了
情况四:
客户端有一段时间没有向服务器发送消息,此段时间内服务器重启了一下,客户端并不知情。此时客户端再次发送消息给服务器,服务器接受不了客户端发来的消息。此时,服务器会给客户端发送RST ,让链接重置。