JAVA 实现 服务器端与客户端 对象流传输?

JAVA 实现 服务器端与客户端 对象流传输?,第1张

这个,在客户端服务端都要有cn.lxzp.turn.User的定义。

你把客户端的这个类编译好后,引入到服务端的类路径里面。

简单来说就是把User类编译,打包成jar文件,拷到服务端,添加到服务端的类路径里面去。

其实这个问题你应该先想一下socket到底是一个什么东西,在网络编程中socket到底用来做什么的。socket:在操作系统内核中它代表网络连接的一个端点(endpoint),在应用程序中它代表一个打开的文件。socket pair唯一确定的一条网络连接,socket pair就是客户端socket和服务端socket的一个组合。也就是客户端ip和port与服务端ip和port的组合。一条网络连接也就是一条通信的信道,tcp连接代表的信道是全双工的。以信道来讲,逻辑上就存在两个管道来代表输出与输入来发送和接收信息。

那么在应用程序上我们就可以拿到这2个管道来完成socket之间的通信。

以你的应用来看输出流fos就代表着图中的红色管道,那么在服务端就应该是这个样的。

Scoket connSock = serverSocket.accept()//connSock代表着服务端的Socket

InputStream is = connSock.getInputStream()//输入流is代表图中的红色管道

OutputStrea os = connSock.getOutputStream()//输出流os代表图中的绿色管道

在服务端有一个字节缓冲区来存放从is读取的字节数据

byte[] buffer = new byte[1024]

然后服务端读取数据来填充这个字节缓冲区

is.read(buffer)//比如这样

然后就根据你的需求来操作这个buffer了。

然后把处理过后的数据通过os发送给客户端。os就是图中的那个绿色管道

os.write(处理过后的数据)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/119619.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-13
下一篇2023-03-13

发表评论

登录后才能评论

评论列表(0条)

    保存