服务器端:public void registerNewUser() {
        //将用户信息插入数据库中的sql语句
        String sql = "INSERT INTO USER_INFO (accNUM,NAME,PASSWORD," +
                     "SIGN,PIC,SEX,EMAIL,BIRTHDAY) VALUES(?,?,?,?,?,?,?,?)";
        //读取qq号码的sql语句
        String sql2 = "SELECT accNUM FROM ACCNUM WHERE ID = 1";
        Statement stmt = null;
        ResultSet rs = null;
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql2);
            rs.next();
            int acc = rs.getInt("accNUM");
            PreparedStatement pre1 = conn.prepareCall(sql);
            acc += 1; //将QQ号加1
            //下面读取客户端发来的信息
            String name = in.readUTF();
            String password = in.readUTF();
            //String ip = in.readUTF();
            String sign = in.readUTF();
            String pic = in.readUTF();
            String sex = in.readUTF();
            String email = in.readUTF();
            String birthday = in.readUTF();
            pre1.clearParameters();
            pre1.setInt(1, acc);
            pre1.setString(2, name);
            pre1.setString(3, password);
            //pre1.setString(4, ip);
            pre1.setString(4, sign);
            pre1.setString(5, pic);
            pre1.setString(6, sex);
            pre1.setString(7, email);
            pre1.setString(8, birthday);
            System.out.println(sql);
            pre1.executeUpdate();
            //更改QQ号的sql语句
            String sql3 = "UPDATE ACCNUM SET accNUM = ? WHERE ID = 1";
            PreparedStatement pre2 = conn.prepareCall(sql3);
            pre2.clearParameters();
            pre2.setInt(1, acc);
            pre2.executeUpdate();
            out.writeUTF("registerOver");
            //向用户返回注册的QQ号
            out.writeInt(acc);
             rs.close();
             stmt.close();
        } catch (Exception ex) {
            try {
                out.writeUTF("registerFail");
            } catch (IOException ex1) {
                ex1.printStackTrace();
            }
            ex.printStackTrace();
        }
    }客户端: public long registerNewUser(String name, String password, String sign,String pic, String sex, String email,String birthday) {
     long acc = 0;
     String serverInfo = "";
     try {
    
     Socket socket = new Socket(logAddress, serverPort);      DataInputStream in = new DataInputStream(socket.getInputStream());
     DataOutputStream out = new DataOutputStream(socket.getOutputStream());
     out.writeUTF("registerNewUser");
     out.writeUTF(name);
     out.writeUTF(password);
     out.writeUTF(sign);
     out.writeUTF(pic);
     out.writeUTF(sex);
     out.writeUTF(email);
     out.writeUTF(birthday);
     serverInfo = in.readUTF();
     if (serverInfo.equals("registerFail")) {
     return 0;
     } else {
     acc = in.readInt();
     }
     } catch (IOException ex) {
     ex.printStackTrace();
     }
     return acc;
    }

解决方案 »

  1.   

    哪個是null??nullpointexception的處理方式是找出哪個是null,然後做null判斷,或是排出發生null的情況。
      

  2.   

    我看着也没有,但是总是报错报到这一句
    Socket socket = new Socket(logAddress, serverPort);
      

  3.   


    我看着也没有,但是总是报错报到这一句
    Socket socket = new Socket(logAddress, serverPort);
      

  4.   

    有没有SeverSocket?没有怎么监听呢。ip地址对了没有?
      

  5.   

    logAddress 是null了吧。从你贴的代码里看不出来logAddress 变量是哪来的
      

  6.   

    服务器有ServerSocket侦听吗?
    服务器端:ServerSocket server=new ServerSocket(8888);
    Socket client=null;
    client=server.accept();
    客户端:
    Socket client=new Socket(LocalHost,8888);
      

  7.   


    public void start(){
    System.out.println("Server Start!");
    try {
    ss = new ServerSocket(TCP_PORT);
    started = true;
    } catch(BindException e){
    System.out.println("....");
    System.exit(0);
    }catch (IOException e){
    e.printStackTrace();
    }
    try {
    while(started){
    s = ss.accept();
    System.out.println("A client connected!");
    Client c = new Client(s);
    clients.add(c);
    new Thread(c).start();
    }
    }catch (IOException e){
    e.printStackTrace();
    }finally{
    try {
    ss.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }