Socket Serveur D'Authentification?

Je suis en train de jouer avec java pour créer un serveur d'authentification pour une application de bureau et pour l'instant j'ai été en mesure de faire à la fois le client et le serveur communiquent comme un chat client/serveur pour un début.

Je ne rends compte que je n'obtient qu'une petite partie de ce travail et il y a beaucoup de choses à venir et à apprendre, mais maintenant, à ce stade, je me demande comment l'authentification se fait.

Par exemple, c'est le code du serveur:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class LoginServer
{
public static void main(String[] args) throws Exception {
int port = 7000;
int id = 1;
ServerSocket loginserver = null;
try
{
loginserver = new ServerSocket(port);
System.out.println("LoginServer started...");
}
catch (IOException e) {
System.out.println("Could not listen on port: " + port);
System.exit(-1);
}
while (true)
{
Socket clientSocket = loginserver.accept();
ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++);
cliThread.start();
}
}
}
class ClientServiceThread extends Thread
{
Socket clientSocket;
int clientID = -1;
boolean running = true;
ClientServiceThread(Socket s, int i)
{
clientSocket = s;
clientID = i;
}
public void run()
{
System.out.println("Accepted Client : ID - " + clientID + " : Address - " + clientSocket.getInetAddress().getHostName());
try
{
BufferedReader   in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter   out = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
while (running)
{
String clientCommand = in.readLine();
System.out.println("Client Says :" + clientCommand);
if (clientCommand.equalsIgnoreCase("quit"))
{
running = false;
System.out.print("Stopping client thread for client : " + clientID);
}
else
{
out.println(clientCommand);
out.flush();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

Comme vous pouvez le voir, je n'ai lu que le client envoie et la sortie de la console ainsi que de vérifier si le client a envoyé une arrêter ou non la commande.

  • Ce que je me demande c'est comment je ferais
    de sorte que le client ne peut se connecter
    si l'utilisateur et le mot de passe a été
    envoyé ?
  • Ou devrais-je reçois toujours le
    connexion initiale et à partir de là
    recevoir l'authentification
    informations et si le client n'a pas
    envoyé disons 3 secondes
    déconnecter ?
  • Quelle est la bonne façon de recevoir
    les nouvelles connexions et de s'authentifier
    les utilisateurs avec elle ?

OriginalL'auteur Guapo | 2011-03-16