通过套接字从客户端向服务器发送多个变量

时间:2012-02-26 13:45:26

标签: java sockets

我最近了解了Java中的套接字,并通过套接字从客户端到服务器来回发送信息。 我想要实现的是从客户端向服务器发送'用户名'和'密码',然后根据数据库中的数据检查这些变量。

将这两个单独值的值发送到服务器以便在服务器端进行验证的最佳方法是什么?

客户端

clientSocket = new Socket("192.168.56.1", 7777);

        in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        out = new PrintWriter(clientSocket.getOutputStream(), true);


    //starting the thread
    while(runner == null)
    {
        runner = new Thread(this);

        runner.start();
    }
}
public void run()
{
    String userNameAdminLogin;
    String passwordAdminLogin;
    while(runner == Thread.currentThread())
    {
        userNameAdminLogin = txtUserName.getText();
        passwordAdminLogin = txtPassword.getText();

        out.println(userNameAdminLogin);
        out.println(passwordAdminLogin);
    }

服务方

while(listening)
            {
                clientSocket = ServerSoc.accept();


                in = new DataInputStream(clientSocket.getInputStream());

                BufferedReader is = new BufferedReader(new InputStreamReader(in));

                os = new PrintStream(clientSocket.getOutputStream());

                //How can I save the two seperate cases of data in variables on server side?
                System.out.println(is.readLine());

            }

亲切的问候

阿里安

3 个答案:

答案 0 :(得分:2)

如果你在一边写两行,你显然应该在另一边读两行:

String name = is.readLine();
String password = is.readLine();

答案 1 :(得分:2)

您可以拥有一个具有用户名和密码作为其属性的对象。

序列化对象然后发送它。

class User implements Serializable {  
String userName ;
String Password ;
... 
}  

现在使用ObjectInput / OutputStream来读/写对象

有关详细信息,请参阅此处 - http://www.coderanch.com/t/205325/sockets/java/send-any-java-Object-through

答案 2 :(得分:2)

如果使用ObjectOutputStream,则可以编写整个对象。

这些对象必须是可序列化的