Java Socket传输如何完成自己的网络任务

开发 后端
Java Socket传输的时候有很多需要我们注意的事情,下面我们就来详细的看看Java Socket传输如何在网络上进行。

Java Socket传输的我们使用的时候有许多都是在网上实现的,我们的目的实现了,并且birthday没有被串行化;如果我们不讲Address实现Serializable,会发生异常:java.io.WriteAbortedException: writing aborted

Java Socket传输IO流

我们都知道Java Socket传输的IO是一个极其庞大的类家族,也正是运用了装饰模式的经典场景;可见,我们一部分管道是直接连接了数据源,或者直接输出到数据源,他们能够直接读数据或者写数据,我们上一节中使用的FileoutputStream和FileInputStream就是这样的管道,他们的数据源就是指存在文件系统中的文件;下一部分我们要求使用的ByteArrayInputStream和ByteArrayOutputStream也是这样的管道,不过他的数据源是存在内存中的数组;他能够通过write把数据,字符串等等写进这块数组区域,并且能够得到一个完整的字节数组。#t#

而另外的一部分则不能直接与数据源发生读写交互,他主要用于装饰上一部分的管道,给这个管道赋予更加便捷的功能,诸如BufferedReader等等的,主要是提供了缓存,就好比给上一部分管道中间提供了一个“蓄水池”,这个“蓄水池”等到“水流”到了一定的程度的时候,才会一次性的流进或者流出等等,诸如ObjectInputStream和ObjectOutputStream,他们能够直接读写一个Object,但是这个Object被写到了哪里,是内存中的字节数组还是文件文件的文件中,而必须委托给其他管道实现;

在网络中传输对象

在网络中的两台机器中传输对象,前提首先是基于同一个平台,这是序列化的基础,所以这里主要有两种做法:

采用Java Socket传输的序列化机制,将对象“压扁”成二进制字节,将二进制字节在网络中传输;

自定义协议,将对象用字符串描述出来,将字符串用二进制表示,在网络中传输,在另外一边用相反的策略解析这个字符串,重新构造业务对象,这个方法能够在异构平台中进行传输而不变形,但是需要额外的编写“压扁”和“充气”的代码。
 

责任编辑:张浩 来源: 互联网
相关推荐

2010-03-19 16:38:29

Java Socket

2015-12-14 16:48:09

完成业余项目

2009-10-27 16:52:41

VB.NET文件传输

2012-03-19 10:55:27

JavaSocket

2010-03-19 16:16:28

Java Socket

2012-02-15 10:37:38

JavaJava Socket

2020-11-13 08:30:57

Socket

2012-02-15 10:40:37

JavaJava Socket

2022-04-08 08:30:42

大数据网络

2011-06-13 12:11:06

javasocket

2011-06-13 11:23:33

javasocket

2015-07-31 11:37:49

任务完成率

2023-07-13 07:35:19

2010-04-23 09:08:01

2012-03-19 10:35:51

ibmdw

2018-03-16 15:14:08

Android传输文件

2012-02-15 10:44:20

JavaJava Socket

2012-08-23 15:37:44

BYONBYODBYOD安全

2012-01-13 12:21:45

Java

2010-03-19 10:58:48

Java Socket
点赞
收藏

51CTO技术栈公众号