zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    

      

  • 相关阅读:
    游戏服务器架构概要
    牛客网_Go语言相关练习_选择题(3)
    Go语言实践_实现一(服务器端)对多(客户端)在线聊天室
    Go语言实践_实现一(客户端)对一(服务器端)聊天室
    牛客网_Go语言相关练习_选择题(2)
    飞鱼48小时游戏创作嘉年华_厦门Pitch Time总结与收获
    牛客网_Go语言相关练习_选择题(1)
    Go语言_iota用法
    游戏服务器概述
    LeetCode_1. Two Sum_Solution
  • 原文地址:https://www.cnblogs.com/yxj808/p/15010809.html
Copyright © 2011-2022 走看看