如题所述
第1个回答 2017-06-07
网络编程中,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映射成哪个值啦!
本回答被提问者采纳