2016-10-16 3 views
0

J'ai eu du mal avec cela au cours des 2 derniers jours. Je suis supposé avoir un client/serveur java en éclipse pour ma classe de réseau informatique, mais le fait est que nous n'avons jamais codé en java, il nous a été forcé de rushlearn java la semaine dernière.TCP client registre/connexion en utilisant hashmap java

sur la im console suposed écrire: inscrire ou vous connecter

Comment puis-je vérifier le premier mot sur une chaîne, si elle est égale registre stocke le nom d'utilisateur et mot de passe dans un hashmap et si elle correspond à ouvrir une session vérifiez la hashmap pour comparaison?

ceci est mon code à ce jour:

SERVEUR:

import java.io.*; 
import java.net.*; 
import java.util.HashMap; 
import java.util.List; 

public class TCPServer { 

    public static void main(String argv[]) throws Exception 
    { 

     String clientSentence; 
     String capitalizedSentence; 

     HashMap<List<String>, List<String>> userMap = new HashMap<List<String>, List<String>>(); 


     ServerSocket welcomeSocket = new ServerSocket(5201); 

     while (true) { 

      Socket connectionSocket = welcomeSocket.accept(); 
      BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); 
      DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); 
      clientSentence = inFromClient.readLine(); 

      capitalizedSentence = clientSentence.toUpperCase() + '\n'; 

      outToClient.writeBytes(capitalizedSentence); 


      } 


    } 
} 

CLIENT

import java.io.*; 
import java.net.*; 

public class TCPClient { 


    public static void main(String argv[]) throws Exception 
    { 

     String sentence; 
     String modifiedSentence; 
     BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 
     Socket clientSocket = new Socket("localhost", 5201); 

     DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
     BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
     sentence = inFromUser.readLine(); 
     outToServer.writeBytes(sentence + '\n'); 

     modifiedSentence = inFromServer.readLine(); 
     System.out.println("FROM SERVER: " + modifiedSentence); 
     inFromUser = new BufferedReader(new InputStreamReader(System.in)); 

     clientSocket.close(); 

    } 
} 

Comment dois-je procéder à partir de maintenant? Merci d'avance

Répondre

0

Vous devez d'abord comprendre, que fait cette déclaration. En fait, qu'est-ce que le paramètre de cette fonction ne:

public static void main (String argv [])

Dans la console si vous tapez connexion, argv [0] aura connexion. Si vous tapez register, argv [0] aura un registre.

lorsque vous exécutez le programme si vous tapez register login, argv [0] aura le registre, arvg [1] aura le login.

Conseil:

if(argv[0].equals("register")){ 
} else if(argv[0].equals("login")){ 
}else{ 
System.out.println("Please enter correct option"); 
System.exit(0); 
} 

donc basée sur l'argument que vous pouvez diriger le code à l'endroit où vous voulez.

+0

Je vous remercie, je vais faire comme vous l'avez dit, affichera les résultats. –