2016-10-16 3 views
0

지난 2 일 동안이 문제로 어려움을 겪었습니다.해시 맵을 사용하여 TCP 클라이언트 등록/로그인 java

내 컴퓨터 네트워크 클래스를 위해 Eclipse에서 클라이언트/서버 자바가 있다고 가정되었지만 요점은 자바로 코딩되지 않았기 때문에 지난주에 rushlearn java에 대해 우리에게 강요당했습니다. 콘솔 메신저에

가 작성 suposed : 레지스터 또는 로그인 나는 그것이 해시 맵에서 사용자 이름과 암호를 저장 등록 동일한 경우, 문자열의 첫 번째 단어를 확인하고는 동일 여부를 확인 로그인 할 수 있습니다 방법

비교를위한 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); 


      } 


    } 
} 

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

    } 
} 

어떻게 내가 지금부터 진행해야 ? 미리 감사드립니다.

답변

0

먼저이 진술을 이해해야합니다. 실제로 무엇을이 함수의 매개 변수가 수행 콘솔에서

공공 정적 무효 메인 ([]는 argv 문자열)

당신이 로그인을 입력하면, 변수는 argv [0] 로그인을해야합니다. register를 입력하면 argv [0]에 등록됩니다.

콘솔에서 프로그램을 실행할 때 register login을 입력하면 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

고맙습니다. 말씀 드린 것처럼 고맙습니다. 결과를 게시 해 드리겠습니다. –