Client/server-Benutzername - /Passwort-Authentifizierung
Arbeite ich an einer Client/server-Authentifizierung Programm, aber ich lief in ein problem. Der client stellt die Verbindung zum server in Ordnung, aber sobald ich in mein Passwort und username es nicht zurück, ob er eine gültige Benutzername - /Kennwort. Wenn die Benutzer-logins mit richtigen username/password-server zurückgeben sollte "Willkommen, username" und, wenn es ungültig ist, es gibt "Fehler beim login". Ich habe mir bei der printwriter und bufferedreader docs, um sicherzustellen, dass ich die richtigen Methoden, um geben Sie den text zwischen server/client richtig. Ich habe versucht zu Debuggen, indem Sie drucken den Benutzernamen und das Kennwort auf dem server und client stellen Sie sicher, dass Sie sowohl Zuhören/schreiben, was Sie zu sein scheinen, weil er keine drucken Sie den richtigen Benutzernamen/Passwort. Kann mir jemand einen Einblick geben, wohin ich gehe falsch gemacht?
public class Connect {
private String USERNAME = "java";
private String PASSWORD = "java";
private int PORT = 9090;
private String HOSTNAME = "localhost";
public String getUsername(){
return this.USERNAME;
}
public String getPassword(){
return this.PASSWORD;
}
public int getPort(){
return this.PORT;
}
public String gethostName(){
return this.HOSTNAME;
}
}
import java.io.*;
import java.io.net.*;
public class Client {
private final String FILENAME = null;
Connect c = new Connect();
Socket socket;
BufferedReader read;
PrintWriter output;
public void startClient() throws UnknownHostException, IOException{
//Create socket connection
socket = new Socket(c.gethostName(), c.getPort());
//create printwriter for sending login to server
output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
//prompt for user name
String username = JOptionPane.showInputDialog(null, "Enter User Name:");
//send user name to server
output.println(username);
//prompt for password
String password = JOptionPane.showInputDialog(null, "Enter Password");
//send password to server
output.println(password);
output.flush();
//create Buffered reader for reading response from server
read = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//read response from server
String response = read.readLine();
System.out.println("This is the response: " + response);
//display response
JOptionPane.showMessageDialog(null, response);
}
public void fileInfo(){
}
public static void main(String args[]){
Client client = new Client();
try {
client.startClient();
} catch (UnknownHostException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.*;
import java.io.net.*;
public class Server {
private int currentTot;
ServerSocket serversocket;
Socket client;
int bytesRead;
Connect c = new Connect();
BufferedReader input;
PrintWriter output;
public void start() throws IOException{
System.out.println("Connection Starting on port:" + c.getPort());
//make connection to client on port specified
serversocket = new ServerSocket(c.getPort());
//accept connection from client
client = serversocket.accept();
System.out.println("Waiting for connection from client");
try {
logInfo();
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
public void logInfo() throws Exception{
//open buffered reader for reading data from client
input = new BufferedReader(new InputStreamReader(client.getInputStream()));
String username = input.readLine();
System.out.println("SERVER SIDE" + username);
String password = input.readLine();
System.out.println("SERVER SIDE" + password);
//open printwriter for writing data to client
output = new PrintWriter(new OutputStreamWriter(client.getOutputStream()));
if(username.equals(c.getUsername()) &&password.equals(c.getPassword())){
output.println("Welcome, " + username);
}else{
output.println("Login Failed");
}
}
public static void main(String[] args){
Server server = new Server();
try {
server.start();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Oh, ich wollte nicht sehen, die scroll-bar! Mein schlechtes
Hat der server-Seite drucken Sie den Benutzernamen und das Kennwort ein, wenn Sie es erhält?
Ja, es druckt, aber es ist nicht, bis ich nach Abbruch des Programms. Ich habe diese print-Anweisung auf dem server um zu sehen, ob was empfangen wurde Benutzername/Passwort
InformationsquelleAutor javanewb | 2015-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie auch Spülen Sie den printWriter an den server genau so wie Sie auf der client-Seite.
Am Ende Ihrer
loginfo()
Methode,InformationsquelleAutor Codebender
Zur Authentifizierung gegenüber der Klartext-String innerhalb des Codes, conditional verwenden, um zu überprüfen, ob der Benutzername und das Kennwort gültig sind.
Jedoch, wenn Sie wollen, zu behaupten, wir sind in der realen Welt, die Authentifizierung gegen LDAP oder mindestens einen verschlüsselten Datei-Eigenschaften...
InformationsquelleAutor losethegame