package day35_net_网络编程.tcp传输.模拟用户登录; import java.io.*; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /* * 模拟用户登录 * 创建客户sockt对象---输入用户名密码---读取数据---发送数据 * 接收服务端判断结果数据 * 释放资源 */ public class ClientTest { public static void main(String[] args) throws IOException { //创建客户sockt对象 Socket s = new Socket(InetAddress.getLocalHost(),8881); //输入用户名密码,读取两行数据(user,password)用按行读取的流 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//读取命令行数据的数据 System.out.println("请输入用户名:"); String user = br.readLine(); System.out.println("请输入密码:"); String password = br.readLine(); //发送数据 PrintWriter pw = new PrintWriter(s.getOutputStream(),true); pw.println(user); pw.println(password); //接收返回结果 /* InputStream is = s.getInputStream(); byte[] byts = new byte[1024]; int len = is.read(byts); Stringbuilder str = new Stringbuilder(byts,0,len); System.out.println(str);*/ BufferedReader serverbr = new BufferedReader(new InputStreamReader(s.getInputStream())); String result = serverbr.readLine(); System.out.println(result); s.close(); } }
package day35_net_网络编程.tcp传输.模拟用户登录; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /* * 创建服务端Socket对象---接收数据 * 判断账号密码是否正确---返回判断结果 * 释放资源*/ public class ServerTest { public static void main(String[] args) throws IOException { //创建服务端Socket对象 ServerSocket ss = new ServerSocket(8881); //接收数据 Socket s = ss.accept();//阻塞。使用socket对象进行读写数据 BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); String user = br.readLine(); String password = br.readLine(); // System.out.println(user + ":" + password); //判断账号密码是否正确 boolean flag = false; if("admin".equals(user) && "123456".equals(password)) { flag = true; } //返回判断结果 PrintWriter pw = new PrintWriter(s.getOutputStream(),true); if(flag) {//true则执行if pw.println("登录成功"); }else { pw.println("登录失败"); } s.close(); } }
输出