• tcp编程:模拟登录


    package com.sundear.demo.tcp;
    
    import java.io.*;
    import java.net.Socket;
    
    /**
     * 模拟登录:双向
     * 创建客户端
     * 1。建立连接 使用Socket创建客户端+服务的地址和端口
     * 2. 操作 输入输出流操作
     * 3。 释放资源
     */
    public class LoginTwoClient {
        public static void main(String[] args) throws IOException {
            System.out.println("---client---");
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("请输入用户名");
            String username =br.readLine();
            System.out.println("请输入密码");
            String password =br.readLine();
            Socket client =new Socket("localhost",8888);
            DataOutputStream dos = new DataOutputStream(client.getOutputStream());
    
            dos.writeUTF("username="+username+"&"+"password="+password);
            dos.flush();
    
            DataInputStream dis = new DataInputStream(client.getInputStream());
            String datas = dis.readUTF();
            System.out.println(datas);
            dos.close();
    
            client.close();
    
        }
    
    }
    

      

    package com.sundear.demo.tcp;
    
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /**
     * 模拟登录:双向
     * 创建服务器
     * 1。指定端口 使用ServerSocket创建服务器
     * 2,阻塞式等待连接 accept
     * 3. 操作 输入输出流操作
     * 4。 释放资源
     */
    public class LoginTwoServer {
        public static void main(String[] args) throws IOException {
            System.out.println("---server---");
            //指定端口 使用ServerSocket创建服务器
            ServerSocket server = new ServerSocket(8888);
            //阻塞式等待连接 accept
            Socket client = server.accept();
            System.out.println("一个客户端建立了连接");
            //操作 输入输出流操作
            DataInputStream dis = new DataInputStream(client.getInputStream());
            String data = dis.readUTF();
            String username="";
            String password="";
            String[] datas=data.split("&");
            for(String info:datas){
                String[] user = info.split("=");
                if(user[0].equals("username")){
                    System.out.println("你的用户名为"+user[1]);
                    username=user[1];
                }else if(user[0].equals("password")){
                    System.out.println("你的密码为"+user[1]);
                    password=user[1];
                }
            }
    
            DataOutputStream dos = new DataOutputStream(client.getOutputStream());
            if(username.equals("root")&&password.equals("sundear123")){
             dos.writeUTF("登录成功,欢迎回来");
            }else{
             dos.writeUTF("用户名或密码错误");
            }
            dis.close();
            dos.flush();
    
            client.close();
        }
    }
    

      

  • 相关阅读:
    121. 122. 123. 188. Best Time to Buy and Sell Stock *HARD* 309. Best Time to Buy and Sell Stock with Cooldown -- 买卖股票
    from __future__ import absolute_import
    sql之left join、right join、inner join的区别
    Eclipse workspace 被占用问题
    JavaScript SetInterval与setTimeout使用方法详解
    提示框3秒钟后自动消失
    页面加载及取消加载
    分层总结
    java中的注释
    canvas画图
  • 原文地址:https://www.cnblogs.com/yxj808/p/15010809.html
Copyright © 2020-2023  润新知