java EOFException 和 发送对象问题
Question One求助End Of File 异常..........
--------------
我在写Socket的时候遇到的问题,我想我也知道问题在什么地方
可是就是没有办法解决.........
客户端在使用Socket连接成功后,使用DataOutputStream发送一个标记字符串
里面记录用户的基本信息,和本条信息的属性。都是一些字符串。
如果服务端不加处理直接使用DataInputStream的readUTF()方法打印出结果的话
没有任何问题。
DataInputStream getClient = DataInputStream(socket.getInputStream());
读取的方法放在一个线程的run()里的while(true)里面
同样客户端也有同样的接受线程。
---------------
问题是我在服务端线程的run()里面先String getInfo = getClient.readUTF();
然后把getInfo传进一个判断信息属性的方法里面,如果判断通过
执行while(true){
JTextArea Info_area前面已经定义完成
Info_area.append(getClient.ReadUTF());此处总是报出EOFException}
一直等待客户端的信息并打印出来
我的理解是readUTF()有点类似于ResultSet的next()和Iterator的next()方法
第二次调用getClient.ReadUTF())的时候已经开始读取下一条DatainputStream的信息,
而此时并没有下一条流所以会读到文件末尾。
------------------------
可是问题是我在while(true)里面加上
if(getClient!=null)的判断,却没有任何作用
同时客户端就会报出Socket is closed的异常
请问在我的程序框架下面应该如何去该。
====================================================================================
Question Two
我想发同一个连接里面既发送String又发送Object
应该在接受段如何分辨
因为我发现Data流和Object都继承与InputSdtream
所以我想应该有判断流类型的方法,既可以让对方知道收到的流是
数据还是对象
====================
希望给予比较详细的解答
本人不胜感激