package sever;
import java.net.*;
import java.net.ServerSocket;
import socket.Tcp;//Tcp类里面有:公共变量port,公共变量socket,无参构造方法Tcp()public class Sever {
   ServerSocket serverSocket=null;
   Tcp tcp=new Tcp();//error
   try{
    serverSocket=new ServerSocket(tcp.port);
    tcp.socket=serverSocket.accept();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
serverSocket.close();
    }catch(Exception e){};
}
}//error
红色为提示的编译错误

解决方案 »

  1.   

    构造的修饰符加了么?加了的话是 public 么?
      

  2.   

    把代码放到方法里面,如下public class Sever {
    public static void main(String args[]) {
    ServerSocket serverSocket = null;
    Tcp tcp = new Tcp();// error
    try {
    serverSocket = new ServerSocket(tcp.port);
    tcp.socket = serverSocket.accept();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    serverSocket.close();
    } catch (Exception e) {
    }
    ;
    }
    }// error
    }
      

  3.   

    为啥子一定要放在main()方法里面啊,我的想法是在main()方法里面构造Sever类,然后再使用该类的方法,因为我的想法是用POP方式实现:即时聊天工具。所以就要实现server和client两个功能,所以分开来实现,同时被main()方法调用,只是想法,望大神赐教
      

  4.   

    Tcp是自己写的一个类,包括socket,outputStream,inputStream,string,主要有接受和发送字符串的功能
      

  5.   

    放在构造函数里也可以
    public class Server {
    ServerSocket serverSocket = null;
    Tcp tcp=new Tcp();//error


    public Server() {
    super();
    try {
    serverSocket = new ServerSocket(tcp.port);
    // tcp.socket=serverSocket.accept();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    serverSocket.close();
    } catch (Exception e) { }
    }
    }
    }