私はJavaで基本的なサーバとクライアントプログラムを作った。クライアントよりもサーバを起動すると、ユーザがパスワード "root"を入力してその値をパスワードとして保存した場合、サーバー側で接続が開始されたときに「パスワードはパスワードの値」よりも大きくなるようにしようとしていますが、プログラムを実行するたびに「パスワードはヌルです」というメッセージが表示されます。 ?私は静的に文字列を変更し、それはまだ私にnullを与えた、助けて説明してください?サーバ - クライアントJava
サーバー側のコード
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public void lookForConnection(){
Socket connection;
clientMethod cM = new clientMethod();
{
try
{
System.out.print("Program running...");
ServerSocket serverSocket = new ServerSocket(6789);
while(true)
{
connection = serverSocket.accept();
System.out.println("Connected Succesfully!");
System.out.println(connection.getInetAddress().getHostName());
System.out.println("The password for this connection is " + cM.password);
}
}
catch(IOException ex)
{
System.out.println (ex.toString());
}
}
}
クライアント側のコードおそらく
import java.io.EOFException;
import java.util.Scanner;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class clientMethod {
public String serverIP;
public String password;
public Socket connection;
public void Client(String host)
{
serverIP = host;
}
public void startRunning() {
try{
Scanner console = new Scanner(System.in);
System.out.print("Please provide the admin password: ");
password = console.next();
if(password.compareTo("root") == 0) {
connectToServer();
//}
}
}
catch(EOFException eofException){
System.out.print("\n Client terminated the connection");
}
catch(IOException ioException) {
ioException.printStackTrace();
}
}
private void connectToServer() throws IOException {
System.out.println("Attempting connection...");
connection = new Socket(InetAddress.getByName(serverIP), 6789);
System.out.println("Connected to " + connection.getInetAddress().getHostName());
}
}
私のクライアント側では、ユーザーの入力値に設定された可変パスワードではありませんか?それは価値がないでしょうか? –
いいえあなたはそれをシリアル化する必要はありません魔法はありません、私が提供するチュートリアルをお読みください、あなたはより理解します –