2016-07-25 11 views
0

我想创建一个客户端/服务器聊天室程序,每个客户端GUI需要显示从服务器发送的活动用户列表。为此,我需要发送客户端列表中的用户数量。但是,当我尝试发送一个整型套接字它会引发类型不匹配错误。更重要的是,如果我尝试将其作为字符串发送并将其解析为int,则随机出现的字母数字字符串不会出现。我知道我发送的变量绝对是一个整数,但我不明白发生了什么。我也留下了不同的解决方案。 服务器:整数不会通过套接字发送,并作为字符串由客户端接收

public void updateClientUserList() 
     { 
      //int userListSize = userList.size(); 
      output.print((int)userList.size()); 


      for(int i = 0; i < userList.size(); ++i) 
      { 
       String user; 
       user = userList.get(i).getUsername(); 
       output.println(user); 
      } 

      chatLog.add("New user(s) has joined the chatroom"); 

     } 

客户:

public static void updateUserList() 
{ 
    String users = ""; 
    //String numInput = input.next(); 
    int userListSize = input.nextInt();//Integer.parseInt(numInput); 

    //for(int i = 0; i < userListSize; ++i) 
    //{ 
    // String user = input.nextLine(); 
    // userList.add(i, user);    
    //} 

    //users = userList.get(0); 

    for(int i = 0; i < userListSize; ++i) 
    { 
     users += input.nextLine(); 
    } 

    userListBox.setText(users); 

} 
+1

你好,请阅读如何创建[MCVE] – OldProgrammer

回答

1

传给你需要一个DataOutputStream类的int那么在哪里调用writeInt这样

sockDataOut = new DataOutputStream(socket.getOutputStream()); 
sockDataOut.writeInt(11); 

并在客户端侧U做:

sockDataIn = new DataInputStream(socket.getInputStream()); 
sockDataIn.readInt(); 
相关问题