【发布时间】:2013-01-11 03:39:44
【问题描述】:
在运行调试器时,程序暂停从服务器主输入输出流初始化对象流。以下是代码:
public TFileReader(Client cli)throws Exception{
this.cli = cli;
fileSock = new Socket(cli.ServerIp(), cli.FilePort());
fobjIn = new ObjectInputStream(fileSock.getInputStream());
fobjOut = new ObjectOutputStream(fileSock.getOutputStream());
fobjOut.flush();
}
@Override
public void run(){
try{
System.out.println("file reader thread online");
fobjOut.writeObject(cli.Name());
fobjOut.flush();
String per = (String) fobjIn.readObject();
System.out.println(per+"video filing...");
if(!per.equals("OKF"))
{
throw new Exception("Error In retriving video.");
}
它在fobjIn 处暂停并且不去执行fobjOut 尽管fobjIn 它从fobjIn 断点传递但不命中断点。
【问题讨论】:
-
顺便说一句,您应该始终首先创建并刷新您的 ObjectOutputStream。如果你不这样做,两端可能会死锁,每个等待从另一个读取。
-
实际上我在设置类构造函数之后就在 put 流中初始化对象 thwn hoq 我刷新它 qhen 它是第一次初始化。?你能告诉我哪里错了
标签: java sockets stream objectinputstream