问题描述
为什么我把BufferedWrite改为PrintWrite方法,并将write方法改为println方法就可能够顺利在Server端和Client端通话?图中的代码就不行?
解决方案
解决方案二:
PrintWrite的println接收的是一行数据,就是有回车的,你的服务器端读取的是一行数据,没有回车会阻塞。
解决方案三:
客户端的println方法会在最后加上一个回车n,而服务器端的readLine方法刚好必须读取到一个n才会完成。客户端和服务器端就这样达成了一个协议。
解决方案四:
readLine是阻塞式的,当读入的内容是空或没有读到换行符(n,r,rn)系统会认为还没有读满一行数据,就阻塞了,后面的代码就不继续执行了。你可以在客户端和服务器端发送的数据后加个"n"试试应该就可以了。另外友情提示下,以后贴代码别截图,别人想调试还得一行一行的敲下你的代码。你给别人创造遍历,别人才能更好的回答你。
时间: 2024-08-01 21:15:49