流式套接字:基于TCP协议的Socket网络编程(案例3)

案例:在案例1的基础上将传输的字符串换成具体的对象。

客户端代码:

package com.yh.SocketObject;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class LoginClient {
    public static void main(String[] args) {
        Student stu = new Student("YeHuan",23);
        try {
            Socket socket = new Socket("localhost",5001);
            OutputStream os = socket.getOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(os);
            oos.writeObject(stu);
            socket.close();
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

服务器代码:

package com.yh.SocketObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class LoginServer {
    public static void main(String[] args) {
        try {
            ServerSocket sc = new ServerSocket(5001);
            Socket socket = sc.accept();
            InputStream is = socket.getInputStream();
            ObjectInputStream ois = new ObjectInputStream(is);
            Student stu = (Student) ois.readObject();
            System.out.println(stu.name +" " + stu.age + "岁");
            sc.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

Student类:

package com.yh.SocketObject;

import java.io.Serializable;

public class Student implements Serializable {
    private static final long serialVersionUID = 1L;
    public int age;
    public String name;
    
    public Student() {}
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
}
原文地址:https://www.cnblogs.com/YeHuan/p/10792902.html