1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用Socket实现账号密码验证

使用Socket实现账号密码验证

时间:2019-03-13 13:43:15

相关推荐

使用Socket实现账号密码验证

客户端: 1. 提示用户输入用户名和密码,将用户输入的用户名和密码发送给服务端

2. 接收服务端验证完用户名和密码的结果

服务端:

1. 服务端设置一组账号、密码作为合法账号

2. 接收客户端发送过来的用户名和密码

3. 如果用户名密码不是服务端规定的账号,就向客户端写入”登录失败”,否则向客户端写入登录 成功

客户端

package cc.lanou.test;import java.io.IOException;import java.io.OutputStream;import .Socket;import .UnknownHostException;import java.util.Scanner;public class ClientSocket {public static void main(String[] args) throws UnknownHostException, IOException {String IP = "127.0.0.1";Scanner scanner = new Scanner(System.in);while (true) {Socket socket = new Socket(IP, 8080);System.out.println("请输入用户名");String name = scanner.nextLine();System.out.println("请输入您的密码");String pwd = scanner.nextLine();System.out.println("输入完成");OutputStream out = socket.getOutputStream();//拼接字符串String namePwd = name + "," + pwd;//传入服务端out.write(namePwd.getBytes());// 结束返回值int data = socket.getInputStream().read();System.out.println(data);if (data == 1) {System.out.println("账号密码正确");System.out.println("登录成功");break;} else {System.out.println("账号或密码错误,请重新输入");}socket.close();}scanner.close();}}

服务端

package cc.lanou.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import .InetSocketAddress;import .ServerSocket;import .Socket;import .SocketAddress;public class ServerSocketDemo {public static void main(String[] args) throws IOException {// 名字String stringName = "小李";String pwd = "123456";// 通信ServerSocket serverSocket = new ServerSocket();// 端口号SocketAddress address = new InetSocketAddress(8080);// 设置通信的端口号 bind(SocketAddress endpoint)// 将 ServerSocket 绑定到特定地址(IP 地址和端口号)。serverSocket.bind(address);// accept()侦听并接受到此套接字的连接。System.out.println("服务器启动");while (true) {Socket socket = serverSocket.accept();//获取客户端的值String msg = readData(socket.getInputStream());//返回客户端OutputStream out = socket.getOutputStream();//分割String[] strmsg = msg.split(",");System.out.println("分割后的数据"+strmsg[0] + strmsg[1]);if (strmsg[0].equals(stringName) && strmsg[1].equals(pwd)) {// OutputStreamWriter writer = new OutputStreamWriter(out2);// writer.write("111");//成功返回1out.write(1);} else {//失败-1out.write(-1);}socket.close();}}/*** 用字符流读取数据* * @param in* @return* @throws IOException*/public static String readDataBuffer(InputStream in) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(in));String msg = br.readLine();return msg;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。