Socket.Close doesn't really close tcp socket? (c#)

前端 未结 4 709
时光取名叫无心
时光取名叫无心 2021-02-05 22:16

It seems that using socket.Close() for a tcp socket, doesn\'t fully close the socket. In the following example I\'m trying to connect to example.com at port 9999, which is not o

4条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-05 22:59

    It will close the .NET part of the socket. However according to the TCP specification the OS have to keep the lower level tidbits of the socket open for a certain amount of time in order to detect retransmission, and similar. In this particular case it's likely keeping the socket around for a bit in order to detect a reply to the SYN packet sent so it can reply more sensibly and not mix up the reply with further packets sent.

提交回复
热议问题