2016-10-16 2 views
0

Я боролся с этим последние 2 дня.Регистрация/логин TCP-клиента с использованием hashmap java

Предполагается, что я должен иметь клиент/сервер java в eclipse для моего класса компьютерной сети, но дело в том, что мы никогда не закодировали в java, и это было заставило нас закрутить java на прошлой неделе.

на консоли им suposed написать: зарегистрироваться или войти в систему

Как я проверить первое слово на строку, если он равен регистре хранить имя пользователя и пароль в HashMap и если оно равно входа в систему проверьте hashmap для сравнения?

это мой код до сих пор:

SERVER:

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); 


      } 


    } 
} 

КЛИЕНТ

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(); 

    } 
} 

Как я должен перейти теперь? Заранее спасибо

ответ

0

Прежде всего, вам нужно понять, что делает это утверждение. На самом деле то, что делает параметр этой функции делать:

государственной статической силы основных (String ARGV [])

В консоли, если вы вводите логин, ARGV [0] будет иметь логин. Если вы введете регистр, argv [0] будет иметь регистр.

в консоли, когда вы запускаете программу, если вы вводите регистрационную регистрацию, тогда argv [0] будет иметь регистр, arvg [1] будет иметь логин.

Подсказка:

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

Так на основе аргумента вы можете направить код туда, где вы хотите.

+0

Спасибо, что я сделал, как вы сказали, опубликует результаты. –

Смежные вопросы