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();
        }
    }       
}
Kannst du die Server-und Client-code? Ohne zu sehen, wie Sie umgesetzt werden können wir nicht wirklich viel tun.
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

Schreibe einen Kommentar