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();
    }
}

  

原文地址:https://www.cnblogs.com/yxj808/p/15010809.html