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