问题描述
- 一个关于Socket的问题
-
我在看了深入剖析tomcat 用Socket模拟浏览器和服务器
结果我忘了向浏览器输出数据后调用socket.close(),结果浏览器阻塞获取不到数据,
而当我补上后就可以了。
我觉得为什么不是在用PrintWriter.println()和flush()后浏览器就能得到数据,而是在socket close之后?
解决方案
PrintWriter.println()和flush()如果在这两个方法获取数据,需要确定你是否接收数据完成,如何才能确定接收数据完成呢??
socket.close方法可以确定你接收数据完成!!
并且这一步必不可少!!
解决方案二:
关闭socket,对方才知道数据接收完成等。需要看一下收到的包分析
时间: 2024-10-16 06:01:42