zoukankan      html  css  js  c++  java
  • TCP之传输对象 客户端传输user对象到服务端 验证登录是否合法

    Server.java

    package com.sxt.tcp4;
    
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    import com.sxt.net.bean.User;
    
    /* 基于TCP协议的Socket编程
     * 双向通信:传输对象
     * 通过IO流传输数据
     * 功能:向服务端发送user对象  看是否满足登录条件
     * 
     */
    //服务端
    public class Server {
        public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException {
            System.out.println("服务端准备就绪!");
            ServerSocket server = new ServerSocket(8888);
            while(true){
                //注意:获取客户端的对应的socket!!
                Socket accept = server.accept();
                //读  输入流  对象输入流
                ObjectInputStream ois = new ObjectInputStream(accept.getInputStream());
                User user =(User) ois.readObject();
                
                String message = "";
                if(user.getUserName().equals("admin") && user.getPassWord().equals("123456")){
                    message = "登录成功!";
                }else{
                    message = "登录失败!";
                }
                System.out.println(message);
                
            }
        }
    }

    Client.java

    package com.sxt.tcp3;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.io.OutputStream;
    import java.net.InetAddress;
    /*
     * 基于TCP协议的Socket编程
     * 传输对象
     */
    import java.net.Socket;
    import java.util.Scanner;
    
    import com.sxt.net.bean.User; //ctrl+shift+O
    /*
     * 客户端
     */
    
    public class Client {
        public static void main(String[] args) throws IOException{
            Scanner input = new Scanner(System.in);
            System.out.println("输入用户名:");
            String userName = input.next();
            System.out.println("输入密码:");
            String passWord = input.next();
            User user = new User(userName, passWord);
            
            Socket socket = new Socket(InetAddress.getLocalHost(),8888);
            //写到服务端   socket获取输出流
            OutputStream outputStream = socket.getOutputStream();
            //传输对象  对象流(包装流)
            ObjectOutputStream oos = new ObjectOutputStream(outputStream);
            //写数据(user对象)
            oos.writeObject(user);
            
            oos.close();//否则报错!
            socket.close();
        }
    }

    User.java

    package com.sxt.net.bean;
    
    import java.io.Serializable;
    
    public class User implements Serializable{    //对象流  序列化,否则会报错
        
        private static final long serialVersionUID = 1L;
    
        private String userName;
        private String passWord;
        public User(String userName, String passWord) {
            super();
            this.userName = userName;
            this.passWord = passWord;
        }
        public User() {
            super();
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPassWord() {
            return passWord;
        }
        public void setPassWord(String passWord) {
            this.passWord = passWord;
        }
        @Override
        public String toString() {
            return "User [userName=" + userName + ", passWord=" + passWord + "]";
        }
        
    }
  • 相关阅读:
    一周见闻速记
    glibc下的内存管理
    流(flow)
    Liunx学习笔记
    逆向工程androidAPK(待补充)
    Ubuntu Linux环境搭建|软件篇
    Ubuntu Linux 源记录
    android 权限
    Android源码下载(ubuntu12.04(amd64))
    游戏外挂编程之神器CE的使用
  • 原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6799353.html
Copyright © 2011-2022 走看看