2016-10-16 28 views
0

过去两天我一直在努力。TCP客户端注册/使用hashmap登录java

我应该在eclipse中为我的计算机网络类有一个客户端/服务器Java,但重点是我们从来没有用java编码,它有点迫使我们在过去的一周中急于java。

在控制台IM

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


      } 


    } 
} 

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]将登录。 如果你输入寄存器,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

谢谢你,我会像你说的那样做,会发布结果。 –