2012-02-26 14 views
1

最近、Javaのソケットについて学び、ソケットを介してクライアントからサーバーに情報を送ってきました。 私が達成したいのは、クライアントからサーバーに「username」と「password」を送信し、データベース内のデータに対してこれらの変数をチェックすることです。ソケット経由でクライアントからサーバーへ複数の変数を送信

サーバー側で検証できるように、これら2つの別々の値の値をサーバーに送信する最も良い方法は何でしょうか。

クライアント側

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()); 

      } 

種類は

に関しては牡羊座生まれの

答えて

2

あなたが片側に2つの行を書いている場合は、明らかに2羽の行を読んでください反対側:

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

オブジェクトには、ユーザー名とパスワードを属性として持つことができます。

オブジェクトをシリアル化して送信します。

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

今すぐ読み取り/書き込みするのObjectInput/OutputStreamを使用し

は、詳細はこの参照してくださいオブジェクト - あなたがたObjectOutputStreamを使用している場合http://www.coderanch.com/t/205325/sockets/java/send-any-java-Object-through

2

あなたが全体のオブジェクトを書くことができます。

これらのオブジェクトはシリアル化可能である必要があります

関連する問題