Java-将用户输入发送到服务器

时间:2017-12-05 02:08:52

标签: java

我通过创建客户端和服务器关系来模拟一个简单的聊天室。我只是使用Netbeans IDE来运行它。当用户按下回车键时,无论他们在IDE控制台中输入什么,都会被发送到服务器,然后回显

console = new BufferedReader(new InputStreamReader(System.in));    

while (thread != null) {  
    try {  
        streamOut.writeUTF(console.readLine());
        streamOut.flush();
    } catch(IOException ioe){  
        System.out.println("Sending error: " + ioe.getMessage());
        stop();
    }
}

我正在尝试创建一个登录/注册系统,要求用户输入用户名和密码。我希望程序暂停执行,直到按下回车键。我目前所拥有的是从用户名输入的内容中删除第一个字符

System.out.println("Type 1 if you are an existing user \nType 2 if you want to register");
System.in.read();
System.out.println("Username:");
System.in.read();
System.out.println("Password:");

示例输出

Connected: Socket[addr=/127.0.0.1,port=10233,localport=52932]
Type 1 if you are an existing user 
Type 2 if you want to register
2
Username:
foo
Password:
52932: oo
bar
52932: bar

1 个答案:

答案 0 :(得分:1)

我会用BufferedReader做到这一点。

这样的事情:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Username: ");
String username = reader.readLine();
System.out.print("Password: ");
String password = reader.readLine();

请注意,以纯文本形式发送密码并将其存储在String对象中是不好的做法。攻击者可以毫不费力地嗅探纯文本用户名和密码,并且有可能在销毁之前读取String的数据。