关于Ipv4和ipv6

问题

服务器监听10000端口, 客户端可以建立tcp连接但是服务端始终无法收到数据.

排查

笔者首先排查了客户端程序, 发现整个过程没什么问题, 客户端成功的建立了tcp连接并且发送了数据. 随后笔者在服务端加日志发现服务器并没有accept任何连接. 猜测可能是端口占用问题,果然发现迅雷占用了10000端口.

总结

让笔者纳闷的是为什么端口被占用却没有报错.
原来迅雷占用了10000端口, 但是netstat显示迅雷占用的ipv4, 服务器监听端口的时候会监听ipv4/ipv6连接. 虽然ipv4被占用了但是还是成功的监听了ipv6端口. 当客户端建立连接时选择的是ipv4端口, 所以便出现了上述让笔者感觉怪异的现象。