服务器客户端间数据传输(最简单例子)

服务器客户端间数据传输(最简单例子)


本地Send项目向Re项目传输数据
项目结构如下:
这里写图片描述
Send项目为发送数据,Re项目为接收数据

由于需要实体所以两个项目要有同样的实体类Student

Student.java(两个Student类代码完全相同)代码如下:

import java.io.Serializable;

public class Student implements Serializable {
	private int age;

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

Send.java代码如下:

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

public class Send {
	public static void main(String[] args) {
		try {
			// 本地主机 端口8001
			Socket s = new Socket("localhost", 8001);
			// 获取输出流
			OutputStream os = s.getOutputStream();
			// Student对象
			Student stu = new Student();
			// 写入学生年龄20
			stu.setAge(20);
			// 对象输出流
			ObjectOutputStream oos = new ObjectOutputStream(os);
			// stu对象写入oos输出流
			oos.writeObject(stu);
			// 清空oos流
			oos.flush();
			// oos os s 分别关闭
			oos.close();
			os.close();
			s.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

Recive.java代码如下:

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

public class Recive {
	public static void main(String[] args) {
		try {
			// 创建一个ServerSocket套接字对象,并绑定在8001端口上
			ServerSocket ss = new ServerSocket(8001);
			// 连接成功 将ss返回的Socket接收
			Socket s = ss.accept();
			// 输入流
			InputStream is = s.getInputStream();
			// 对象输入流
			ObjectInputStream ois = new ObjectInputStream(is);
			// 将对象从流中取出来
			Student stu = (Student) ois.readObject();
			// 输出年龄
			System.out.println(stu.getAge());
			// 关闭流
			ois.close();
			is.close();
			s.close();
			ss.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

运行时,先运行Recive.java再运行Send.java
结果如下:
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值