有网友碰到这样的问题“go tcp 怎么得知服务器发送fin”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
网络编程中,tcp socket读取到fin段是和读到EOF(End Of File)的表现是一致的。可以把fin看成是网络的EOF。
编程语言对EOF的设计不尽相同,golang我没搞过,就拿python和java举个例子。python的EOF为空字符串,java中的EOF值为-1。
场景:nc作为服务端监听60000端口,客户端连接,然后接收数据,服务端发送fin给客户端。
python作为客户端接收到协议栈中的fin,应用层sock.recv调用返回的EOF值为空字符串。
java作为客户端的通过socket的inputStream.read读取到的EOF值为-1。
go作为客户端的实现应该也差不多,就看go语言层面中对EOF映射成哪个值啦!
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务