关于新建对象流报io.EOFException的问题

代码大致是
InputStream is=httpUrlConnection.getInputStream();
ObjectInputStream ois=new ObjecInputStream(is);
然后在新建ois的时候会报io.EOFException,而且is不是空的,问一下大佬们是什么原因。
(只有在页面第一次进去的时候会报这个问题,后面就不会报了)

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于对象流的问题
我通过对象流把对象写到文件中,但是我怎样再从文件中把这些对象一个个读出来?
关于对象流的两个问题
1、如何向对象输出流中写入多个对象,如何从对象输入流中读取所有对象?rn2、能否将一个对象写入一个随访问文件?
关于对象流
1、ObjectInputStream() 的readObject()用于读入对象rnObjectOutputStream() 的writeObject()用于写入对象rn那么请问怎么修改文件里的对象呢?rn比如说文件“student.dat” 里有个对象stu; 我怎么能修改stu.name 的值呢?rn2、加入student.dat 是个空文件rn FileInputStream file = new FileInputStream(student.dat);rn ObjectInputStream in = new ObjectInputStream(file);rn stu = in.readObject();会返回null还是怎样? 我运行了一下抛出IOException 了~rnrnrn谢谢大虾们了~~~
对象流问题
请问怎么现实用对象流模拟对象数据库?
求救,关于对象流 读写的问题.
服务器端为什么接收不到客户端发送过去的数据?rn找了很久也没有找到是什么原因.rn所以贴出来让大家帮忙解决,谢谢了.rnrn服务端:rnimport java.io.IOException;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.net.ServerSocket;rnimport java.net.Socket;rnimport java.util.Vector;rnpublic class Server extends java.lang.Threadrn ServerSocket ss = null;rn ObjectInputStream ois = null;rn public Server() rn try rn ss = new ServerSocket(1860);rn System.out.println("服务器已启动...!");rn catch (IOException e) rn e.printStackTrace();rn rn rn public void run() rn String type = null;rn while (true) rn try rn Socket client = ss.accept();rn ois = new ObjectInputStream(client.getInputStream());rn try rn System.out.println(ois.readObject());rn catch (ClassNotFoundException e) rn e.printStackTrace();rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn public static void main(String args[]) rn new Server().start();rn rnrnrnrn客户端:rnimport java.io.IOException;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.net.Socket;rnimport java.net.UnknownHostException;rnpublic class Clientrn public static void main(String[] args) rn try rn Socket s = new Socket("127.0.0.1",1860); rn ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());rn UserInfo uinfo = new UserInfo(); rn uinfo.setName("lxh");rn uinfo.setPassword("asdf"); rn oos.writeObject(uinfo);rn catch (UnknownHostException e) rn e.printStackTrace();rn catch (IOException e) rn e.printStackTrace();rn rn rnrnrnrnimport java.io.IOException;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.util.Date;rnpublic class UserInfo implements java.io.Serializablern private String name = null; rn private String password = null; rn public UserInfo()rn public String getName() rn return name;rn rn public void setName(String name) rn this.name = name;rn rn public String getPassword() rn return password;rn rn public void setPassword(String password) rn this.password = password;rn rn private void writeObject(ObjectOutputStream oos)rn try rn oos.writeUTF(name);rn oos.writeUTF(password);rn oos.flush();rn catch (IOException e) rn e.printStackTrace();rn rn rn private void readObject(ObjectInputStream ois) rn try rn name = ois.readUTF();rn password = ois.readUTF();rn catch (IOException e) rn e.printStackTrace();rn rn rnrn
关于xml对象流的接收问题
服务端:rnObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());rn//生成xml文件rnbuild.createXMLByCode("",String.valueOf(LinkmanException.SERVER_BUSY));rn//输出xml文件对象rnout.writeObject(build.getXMLDocument());rnrn客户端:rnObjectInputStream ois = new ObjectInputStream(socket.getInputStream());rnSAXReader saxReader = new SAXReader();rnDocument document = saxReader.read(ois);rnrn每次在执行到Document document = saxReader.read(ois);就出异常:rnorg.dom4j.DocumentException: Error on line 1 of document : 缺少文件根组件。 Nested exception: 缺少文件根组件。rn at org.dom4j.io.SAXReader.read(SAXReader.java:339)rn at org.dom4j.io.SAXReader.read(SAXReader.java:246)rn at com.surge.ldap.client.run(client.java:72)rnNested exception: rnorg.xml.sax.SAXParseException: 缺少文件根组件。rn at org.apache.crimson.parser.Parser2.fatal(Unknown Source)rn at org.apache.crimson.parser.Parser2.fatal(Unknown Source)rn at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)rn at org.apache.crimson.parser.Parser2.parse(Unknown Source)rn at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)rn at org.dom4j.io.SAXReader.read(SAXReader.java:323)rn at org.dom4j.io.SAXReader.read(SAXReader.java:246)rn at com.surge.ldap.client.run(client.java:72)rnNested exception: org.xml.sax.SAXParseException: 缺少文件根组件。rn at org.apache.crimson.parser.Parser2.fatal(Unknown Source)rn at org.apache.crimson.parser.Parser2.fatal(Unknown Source)rn at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)rn at org.apache.crimson.parser.Parser2.parse(Unknown Source)rn at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)rn at org.dom4j.io.SAXReader.read(SAXReader.java:323)rn at org.dom4j.io.SAXReader.read(SAXReader.java:246)rn at com.surge.ldap.client.run(client.java:72)rnrn这到底是什么原因呢,我用Document doc = (Document)ois.readObject();也不行
对象流的问题
1、ObjectInputStream() 的readObject()用于读入对象 rnObjectOutputStream() 的writeObject()用于写入对象 rn那么请问怎么修改文件里的对象呢? rn比如说文件“student.dat” 里有个对象stu; 我怎么能修改stu.name 的值呢? rn2、加入student.dat 是个空文件 rn FileInputStream file = new FileInputStream(student.dat); rn ObjectInputStream in = new ObjectInputStream(file); rn stu = in.readObject();会返回null还是怎样? 我运行了一下抛出IOException 了~ rn3、writeObject()是追加吗?能重写ObjectOutputStream吗?rnrn谢谢大虾们了~~~
对象流
public class Test { public static void main(String[] args) throws IOException { File file = new File("cat.txt"); //ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream ObjectOutputStream obOu
关于对象流的一个测试
package com.huxin.testfifteen.io; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;
关于序列化和对象流
随时随地阅读更多技术实战干货,充分利用闲暇时间,请关注源代码社区公众号(ydmsq666)和技术交流群。 一、对象序列化: 1.在做对象数据传输时,由于对象中的数据很庞大。在传输之前,需要将对象打散成字节序列,以利于传输。这个过程叫序列化过程。 2.达到目的地后,又需要将字节序列还原成对象,这叫反序列化过程。 二、对象流使用示例: package com; import ...
关于对象流的读写
服务器端写入流:rn outObject.writeObject(object);rn outObject.flush();rnrn客户端读入流:rnrn Object o = null;rn if((o=in.readObject())!=null)rn System.out.println(o.toString());rn rnrn运行结果:rnrnrn999999999999999rnrnjava.io.StreamCorruptedException: invalid stream headerrnrn at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737)rnrn at java.io.ObjectInputStream.(ObjectInputStream.java:253)rnrn at catic.hotel.common.SocketStream.getObjectInputStreamFromSocket(SocketStream.java:34)rnrn at catic.hotel.server.server.TestClient.writeObject(TestClient.java:31)rnrn at catic.hotel.server.server.TestClient.run(TestClient.java:57)rnrnrn请问这是怎么回事,为什么会抛出这个异常,String实现了Serializable的呀
关于对象流的实例
package com.hsj.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.junit.Test;
新建maven项目报红
先记录下,以后再找解决更好方法 右键项目
对象流阻塞问题,帮帮忙
[code=Java]rnimport java.io.BufferedReader;rnimport java.io.DataInputStream;rnimport java.io.DataOutputStream;rnimport java.io.File;rnimport java.io.FileOutputStream;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.io.OutputStream;rnimport java.net.ServerSocket;rnimport java.net.Socket;rnimport java.util.ArrayList;rnrnimport qq.domain.Messages;rnimport qq.domain.User;rnrnrnrnpublic class ServerChat implements Runnablern private static final String DATABASE_PATH = "";rnrn private ServerSocket ss = null;rn private boolean isStarted = false;rnrn private static ArrayList users = new ArrayList();rnrn private ArrayList clients = new ArrayList();rn rn @Overridern public void run() rn this.startServer();rn System.out.println("服务器停止了!!!!!!!!!!!!!");rn rn rn public void startServer()rnSystem.out.println("服务器启动了!!!!!!!!!!!!!!");rn try rn ss = new ServerSocket(8888);rn this.isStarted = true;rn //users = new DBUser().getUsersFromDB();rn rn catch (IOException e) rn e.printStackTrace();rn rn while(isStarted) rn try rn Socket socket = ss.accept();rnSystem.out.println("有个客户端连接上来了");rn Client client = new Client(socket);rnSystem.out.println("服务器端启动一个Client对话");rn new Thread(client).start();rnrn clients.add(client);rn catch (IOException e) rn e.printStackTrace();rn rn rn rn rn public static void main(String[] args) rn ServerChat server = new ServerChat();rn server.startServer();rn rn rn class Client implements Runnablern private Socket socket = null;rn private boolean isConnection = false;rn private InputStream input = null;rn private OutputStream output = null;rn private ObjectInputStream dis = null;rn private ObjectOutputStream dos = null;rn private Messages message = null;rn rn rn public Client(Socket socket) rn this.socket = socket;rn isConnection = true;rn try rn input = this.socket.getInputStream();rn output = this.socket.getOutputStream();rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn public void send(Messages message) rn try rn dos.writeObject(message);rn dos.flush();rn catch (IOException e) rn e.printStackTrace();rn rn rnrn @Overridern public void run() rn rn try rn //这里阻塞了,如何解决rn dis = new ObjectInputStream(input);rn dos = new ObjectOutputStream(output);rn rn while(isConnection) rn try rn System.out.println("服务器,将要读一次消息");rn message = (Messages) dis.readObject();rn catch (ClassNotFoundException e) rn e.printStackTrace();rn rn rn rn System.out.println("服务器端收到:" +message.getMessage());rn this.send(message);rn rn catch (IOException e) rn System.out.println("客户端连接已经中断");rn finally rn try rn if(dis != null) rn dis.close();rn rn if(dos != null) rn dos.close();rn rn if(socket != null)rn socket.close();rn rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn rn rn[/code]rnrn[code=Java]import java.io.DataInputStream;rnimport java.io.DataOutputStream;rnimport java.io.IOException;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.net.Socket;rnimport java.util.Scanner;rnrnimport qq.domain.Messages;rnrnpublic class ClientChat rnrn private Socket socket = null;rn private ObjectInputStream dis = null;rn private ObjectOutputStream dos = null;rn private Messages message = null;rn rn private boolean isConnection = false;rn rn public ClientChat() rn rn rn rn public void connect() rn rn try rn this.socket = new Socket("爷的PC",8888);rn dis = new ObjectInputStream(socket.getInputStream());rn dos = new ObjectOutputStream(socket.getOutputStream());rn isConnection = true;rn rn new Thread(new receiveThread()).start();rn catch (IOException e) rn e.printStackTrace();rn rn rn rn public void disConnect() rn try rn if(dis != null) rn dis.close();rn rn if(dos != null) rn dos.close();rn rn if(socket != null) rn socket.close();rn rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn public void send() rn Scanner scan = new Scanner(System.in);rn String messageString = null;rn rn try rn while(isConnection) rn messageString = scan.next();rn message.setMessage(messageString);rn dos.writeObject(message);rn rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn rn private class receiveThread implements Runnable rn private Messages receiveMessage = null;rn @Overridern public void run() rn try rn while(isConnection) rn try rn receiveMessage = (Messages) dis.readObject();rn catch (ClassNotFoundException e) rn e.printStackTrace();rn rn System.out.println("客户端收到:"+message.getMessage());rn rn rn catch (IOException e) rn e.printStackTrace();rn rn rn rn rn public static void main(String[] args) rn ClientChat client = new ClientChat();rn client.connect();rn client.send();rn rn rn[/code]rnrn[code=Java]public class Messages rn private User fromUser = null;rn private User toUser = null;rn private String message = null;rn private Image image = null;rn private Icon icon = null;rn rn public String getMessage() rn return message;rn rn public void setMessage(String message) rn this.message = message;rn rn public Image getImage() rn return image;rn rn public void setImage(Image image) rn this.image = image;rn rn public Icon getIcon() rn return icon;rn rn public void setIcon(Icon icon) rn this.icon = icon;rn rn public User getFromUser() rn return fromUser;rn rn public void setFromUser(User fromUser) rn this.fromUser = fromUser;rn rn public User getToUser() rn return toUser;rn rn public void setToUser(User toUser) rn this.toUser = toUser;rn rn rn rn[/code]rnrn程序走到下面这里就阻塞了,如何解决呢?rn dis = new ObjectInputStream(input);rn dos = new ObjectOutputStream(output);rnrn是因为ObjectInputStream和ObjectOutputStream只能通过文件流,不能通过网络流吗?rn如果可以通过网络流传递对象,我的这个程序如何改才可以呢?rn麻烦大家帮帮忙哈?都搞了2个小时了,郁闷!
一个对象流的问题
我想用自定义的格式来保存一些数据,对于对象来说,我保存后,在程序运行中,我可以将保存的对象读出来,但是关闭程序后,重新启动后就读对这个文件读不出东西来,不知道怎么回事,请高手指点
有关对象流的转换问题
我写了一个程序,要求用对象流ObjectOutputStream把一个对象数组写入本地磁盘文件中,然后将这个文件以16进制形式进行解码读出,我搞了半天重视出现乱码!在本地文件中读出的byte[]内存储的值是:-84-190511711401991761091219910897115115466910911210811112110110159-31-1252530-121-1248359200120112000311511401510912199108971151154677971109710310111439-104-11856123121052120273051121171141151017609115101991141011169711412111601876109121991089711511547691091121081111211011015912011401610912199108971151154669109112108111121101101-1647-120-123-73-582555204680141011091121081111211011018397108971141217601010110911210811112110110173100116018761069711897471089711010347831161141051101035976012101109112108111121101101789710910111301260576071041051141016897121116016761069711897471171161051084768971161015912011264-891120000011211603108103115115114014106971189746117116105108466897116101104106-1271758911625300120112119800091672980120007-4811511301260464-113640000011211603108104113115113012609119800010135-811240120113012601111511301260464-9764000001121160211910711511301260911980009177105-64012rnrn怎样把这个byte数组内的值转换成16进制形式?
对象流的写入和读出问题?
out.writeObject(testArray); 语句出错。rnrn程序是:rnrn /**rn * object --> TestObject[]rn */rn private void objectStreamTest2() rn try rnrn FileOutputStream fos =rn new FileOutputStream("F:/test/testFile/testObjectStream2.txt");rn ObjectOutputStream out = new ObjectOutputStream(fos);rnrn TestObject[] testArray = this.setObjectArray();rn out.writeObject(testArray);rn out.close();rnrn ObjectInputStream in =rn new ObjectInputStream(rn new FileInputStream("F:/test/testFile/testObjectStream2.txt"));rn TestObject[] array = (TestObject[]) in.readObject();rnrn for (int i = 1; i < array.length; i++) rn System.out.println(array[i]);rn rn in.close();rn catch (ClassNotFoundException e) rn e.printStackTrace();rn catch (FileNotFoundException e) rn e.printStackTrace();rnrn catch (IOException e) rn e.printStackTrace();rn rn rn /**rn * set TestObject[] objectrn */rn private TestObject[] setObjectArray() rn TestObject[] testArray = new TestObject[9];rn for (int i = 1; i < 10; i++) rn TestObject obj = new TestObject();rn obj.setName("xuyz" + (i < 10 ? "000" + i : "" + i));rn obj.setSex(i % 2 == 0 ? 'M' : 'S');rn obj.setSalary(i % 2 == 0 ? i * 10 : i * 100);rn testArray[i - 1] = obj;rn rn return testArray;rn
关于socket网络通信对象流,求助。。。
public void run() rn int jie = 0;rn try rn BufferedReader br = new BufferedReader(new InputStreamReader(s1.getInputStream()));rn System.out.println(s1.getLocalAddress().toString()+s1.getLocalPort());rn clientIn = new ObjectInputStream(s1.getInputStream()); rn clientOut = new ObjectOutputStream(s1.getOutputStream());rnrn while (true) rn System.out.println("server等待接受信息");rn mes = (ServerMessage) clientIn.readObject();rn System.out.println("server接受到了信息" + mes.getType());rn //处理请求模块rn switch (mes.getType()) rn case 0://发送大厅信息rn mes.setDating(GameCenterInfo.getGameCenterInfo().getRooms());rn break;rn case 1://创建房间,发送执行结果信息rn jie = GameCenterInfo.getGameCenterInfo().creatRoom(mes.getNewroom());rn mes.setType(jie);rn break;rn case 2://连接指定房间,发送执行结果信息rn jie = GameCenterInfo.getGameCenterInfo().conRoom(mes.getConno());rn mes.setType(jie);rn if (jie == 0) rn mes.setNewroom(GameCenterInfo.getGameCenterInfo().getConRoom());rn rn break;rn case 3:rn break;rn default:rn System.out.println("无效的信息包");rn rn clientOut.writeObject(mes);rn System.out.println("server发送了信息" + mes.getType());rn rn catch (Exception e) rn rn rn这是我写的处理socket连接客户端的部分代码,在构造体中将客户socket传入,然后run方法在一开始的第四行,读取s1的输入流新建bufferedreadr成功,第五行的ip与端口号也打印的出来,但是第六行就无限卡在这里了,之后的for循环没有进去,也没有报错,就一直卡在这句话上了。。。。rn十分不解啊。。。纠结好久了,,,望大神不灵赐教。。rn
关于新建数据库的问题
Private Sub Command2_Click()rn cd.Filter = "*.mdb|*.mdb"rn cd.ShowSavern If cd.FileName = "" Then Exit Subrn Dim d() As Bytern d = LoadResData(101, "custom")rn Open cd.FileName For Binary Access Write As #1rn Put #1, , drn Close #1rn Text1 = cd.FileNamernEnd Subrnrnrn问题如下:一,通过以上命令能自由的建立多个数据库名,但每个数据库内的每一个字段都是一样的,并且有些字段设制了必填(不能为空)而我想让数据库内的任何一个字段都能为空,应该怎么办啊.rn二,我新建的数据库用VB内的工具采单下的可视化管理,设置了其中一个数据库文件的必填选项,结果只有这一个新建立的可以随意输入,但如果单击按钮,重新再建立一个新的数据库,就又要求每一项都要填写了,rnrn晕,请问怎么办啊.???????rn
关于新建连接的问题
斑竹,我的在上班的时候常常要转换网段,每次都要改动IP,rn我突发齐想,我想建两个连接,要转换的时候,就直接启动其中的一个连接,但我就是不能建立两个连接,求求斑竹,教我怎样做。
关于新建文件的问题
我想通过saveFileDialog让用户新建一个mdb文件,可是用户点击保存后那里并没有那个文件,是否要通过streamwriter去自己写到用户选择的那个地方?如果我要将一个文件复制到另外一个地方通过C#要如何实现?
关于新建数据库的问题???
本单位有一个SQL数据库,我要把其中的数据库导出放到家里的机器上进行程序开发,请问应该怎么做呀?最好是名字什么都是一模一样的哦。谢谢了。
关于新建的一个问题
rn做了一个程序,单文档界面,有一个新建文件按钮。rnrn希望点击新建按钮以后,所以已经赋值数组都清空,文本框清空,等之类的操作,rnrn就是希望恢复到刚开始进入窗体时的情况。rnrn因为控件比较多,数组也比较多,除了一个一个的清空方法,有没有简便的方法。
关于新建BSP的问题
现在我手头有块SMDK2442的开发板和BSP,一切都可以正常工作;我又重新做了一个开发板,也是用2442的,比方说,就叫做MV2442吧,我想新建一个BSP,但我又不想破坏之前的SMDK2442的BSP,就是说,我想克隆一个BSp,在我的工程下有两个BSP,当编译SMDK2442的时候,生成SMDK的image;当编译MV2442的时候,就产生MV2442的IMAGE。rn但现在问题来了。rn首先,我复制SMDK2442的BSP,重命名叫做MV2442;rn然后修改里面的文件名,比方说SMDK2442.BAT修改成MV2442.BAT;修改成MV2442.CEC等等;rn第三步,修改CEC文件内容,将里面的SMDK全部替换成MVrn第四步,在manage catalog item里面去除掉SMDK2442.cec(如果不去除这个,我的新的加进来后一打开里面引用的全部是SMDK2442的内容,且MV2442.CEC不能修改,不知道为什么),然后import我自己的MV2442.CECrn第五步,编辑MV2442.CEC,在platform的cec edit工具下修改,将里面的SMDK2442全部替换成MV2442,然后保存rn上面做了后,我编译我的MV2442BSP没有任何问题。rn但是,我的问题是当我把SMDK2442.CEC再导入的时候,platform builder每次打开就报错,然后自动关闭了rnrn单独用SMDK2442.CEC没有问题,单独用MV2442.CEC也没有问题,但两个都用上,就出问题了。rnrn我该怎么办?rnrn我该如何克隆BSPrnrn谢谢
关于新建线程的问题
我用的是VS2008,建的程序是个Winform,但是用的是VC++语言。想点击一个按钮之后把数据添加到Access数据库里去,但是由于数据量大,程序就直接死了。想在按钮事件中新建一个线程来添加。但是始终有问题,就在ThreadStart的时候。rn[code=C/C++]ThreadStart^ threadDelegate = gcnew ThreadStart(Add());rn Thread^ thread = gcnew Thread(threadDelegate);rn thread->Start();[/code]rn其中Add是一个函数,查找了一些C#的方法,把Add后面的括号去了也不行。谁能帮忙解决一下啊。谢谢
关于新建类的问题
用“新建类”对话框新建了一个自定义的普通类(不是从MFC派生的),能不能用这个类定义一个全局的对象,并在项目的所有CPP文件中使用?
关于新建的问题!
各位大哥大姐,我做了一个东西,是以ACCESS为底端数据库的,其中有一个新建的功能,就是说新建是要新建一个ACCESS表格,但是字段和类型是要可以自由设定的,也就是说要调用ACCESS的新建表格的功能,请问代码应该要怎么写?我用的是VB语言。谢谢!
新建WebProject报如下错
Compiler compliance level of project rams should be 5.0.Your current workspace default is 6.0.Do you want to use a custom setting for your project? 意思是,当前的jdk版本是6,但系统默认是5,问是否需要用你的配置来进行当前文件的解析。所以点是或者否...
Java对象流
  在基于C/S模式下的Java编程中大多用到各种IO流的操作,ObjectStream(对象流)是其中的一种。   下面这个列子说明Java对象流在C/S模式下的使用优于字节流:   TestClient.java   package com.test.Client;import java.awt.*;import java.awt.event.*;import com.test.con...