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 + "]";
    }
    
}

 

posted @ 2017-05-02 23:40  清风追梦enjoy  阅读(511)  评论(0编辑  收藏  举报