怎么你这个clss里面的scsock和dcsock都没有声明对象?
如果你要在主函数里面也要用到这两个变量
最好在主函数里面将其定义为public static
然后在此处用
mainClassName.scsock=new Socket(SCHOSTIP,SCPORT);
mainClassName.dcsock=new Socket(DCHOSTIP,DCPORT);
如果你要在主函数里面也要用到这两个变量
最好在主函数里面将其定义为public static
然后在此处用
mainClassName.scsock=new Socket(SCHOSTIP,SCPORT);
mainClassName.dcsock=new Socket(DCHOSTIP,DCPORT);
怎么没见?
scsock=new Socket(SCHOSTIP,SCPORT);
dcsock=new Socket(DCHOSTIP,DCPORT);}
catch(IOException e){System.out.println(e.getMessage());
}
这一块确定连接上服务端了吗!
如果没有建立的话
怎么可能建立Socket对象??
try{
#1 Socket scsock=new Socket(SCHOSTIP,SCPORT);
#2 Socket dcsock=new Socket(DCHOSTIP,DCPORT);
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
看上面的行,你的对象实际上出了try block的话,还是存在的,如果这个时候还没有被GC解决掉的话,不过的要命的是变量scsock和dcsock出了try
block就没有不能再使用了(这个是生存周期的问题,也就是lifetime 和scope的问题)。所以说那些对象现在都是不能引用的了,虽然那些对象可能在某些时候还在内存中。因为你失去唯一可以引用他的句柄(就是那些变量)了。