怎么你这个clss里面的scsock和dcsock都没有声明对象?
如果你要在主函数里面也要用到这两个变量
最好在主函数里面将其定义为public static
然后在此处用
mainClassName.scsock=new Socket(SCHOSTIP,SCPORT);
mainClassName.dcsock=new Socket(DCHOSTIP,DCPORT);

解决方案 »

  1.   

    你的scsock和dcsock在哪里定义的?
    怎么没见?
      

  2.   

    你的主程序里好像没有调用getsock()吧
      

  3.   

    try{
          scsock=new Socket(SCHOSTIP,SCPORT);
          dcsock=new Socket(DCHOSTIP,DCPORT);}
          catch(IOException e){System.out.println(e.getMessage());
    }
    这一块确定连接上服务端了吗!
      

  4.   

    服务器端的Socket已经建立了?
    如果没有建立的话
    怎么可能建立Socket对象??
      

  5.   

    看下面的代码先:
    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的问题)。所以说那些对象现在都是不能引用的了,虽然那些对象可能在某些时候还在内存中。因为你失去唯一可以引用他的句柄(就是那些变量)了。