使用hashmap java的TCP客户端注册/登录

时间:2016-10-16 12:40:45

标签: java tcp tcpclient tcpserver

过去两天我一直在努力解决这个问题。

我应该在eclipse中为我的计算机网络类设置一个客户端/服务器java,但关键是我们从未在java中编码,过去一周我们强迫我们使用rushlearn java。

控制台上的

我写了: 注册或登录

如何检查字符串上的第一个单词,如果它等于寄存器存储在hashmap中的用户名和密码,如果等于login,则检查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();

    }
}

我该如何从现在开始? 提前谢谢

1 个答案:

答案 0 :(得分:0)

您首先需要了解此声明的作用。实际上这个函数的参数是做什么的:

  

public static void main(String argv [])

在控制台中输入login,argv [0]将登录。 如果输入register,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);
}

因此,根据参数,您可以将代码定向到您想要的位置。