TCP连接传输对象

首先创建要传输的对象。

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Book implements Serializable {
    int id;
    String name;
    String author;
}

创建TCP传输服务端。

/**
 * 对象流传输服务端
 */
public class SocketObjServer {
    @Test
    public void test1() throws IOException, ClassNotFoundException {
        //创建服务端socket,监听9000端口
        ServerSocket serverSocket = new ServerSocket(9000);
        //等待接收
        Socket socket = serverSocket.accept();
        //创建输入流接收数据
        InputStream is = socket.getInputStream();
        ObjectInputStream ois = new ObjectInputStream(is);
        //将接收的数据转换为指定对象
        Book book = (Book) ois.readObject();
        //输出对象信息
        System.out.println(book);
        //关闭流和socket连接
        ois.close();
        socket.close();
    }
}

创建客户端。

/**
 * 对象流传输客户端
 */
public class SocketObjClient {
    @Test
    public void test1() throws IOException {
        //创建socket
        Socket socket = new Socket("localhost",9000);
        //创建输出流,向服务端发送数据
        OutputStream os= socket.getOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(os);
        //创建传输对象,对象属性通过控制台输入
        Book book = new Book();
        Scanner sc = new Scanner(System.in);
        System.out.println("输入书的id:");
        int i= sc.nextInt();
        book.setId(i);
        System.out.println("输入书的名字:");
        String name= sc.next();
        book.setName(name);
        System.out.println("输入书的作者:");
        String author= sc.next();
        book.setAuthor(author);
        //通过输出流输出对象
        oos.writeObject(book);
        //关闭流和连接
        oos.close();
        socket.close();
    }
}

测试连接:
1.客户端输入
在这里插入图片描述
2.服务端输出
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值