序列化的必要性及网络传输

wzp144650 2009-06-19 11:48:06
如题

在网上查了些,基本都是说“序列化可以将一个对象转化成一段字符串编码,以便在网络上传输或者做存储处理,使用时再进行

反序列”这样说太抽象了呀,还是不太懂呀,“以便在网络上传输”,是说这样更方便?“存储处理”,不序列化不能存储?

不应该呀,还是说他说的存储和我理解的存储不同。我想知道什么时候必须要序列化,还有,什么才可以在网络上传输?流

吗?
...全文
1167 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaohad 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 zwamm 的回复:]

求序列化对象在网络传输的实例
我倒是要看看是咋回事………………
[/Quote]

同求
zwamm 2010-11-27
  • 打赏
  • 举报
回复
求序列化对象在网络传输的实例
我倒是要看看是咋回事………………
虾者 2010-03-05
  • 打赏
  • 举报
回复
当我要传输的对象数据量相当大时,怎么定义byte数组的大小啊,一般定义为1024,如果不够的话岂不是要数据丢失??继续增加byte数组的长度的话又太占内存了,有人建议分段传,有没有谁能提供具体的代码啊,我这先谢谢了
wjq 2009-06-19
  • 打赏
  • 举报
回复
这么说,你声明了一个类,你怎么通过网络传输给别人?
zgke 2009-06-19
  • 打赏
  • 举报
回复
当你发送数据和接收数据都是通过byte[]来获取的时候.如果你要发送对象.需要进行序列化. 如果你用WEBSERVICE来传输..则不需要因为WEBSERVICE会把数据序列化成XML数据.XML转换为byte IIS来做.所以你不需要去关心序列化的问题.
如果你使用SOCKET那你必须进行序列化.
wzp144650 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hongqi162 的回复:]
互联网上传输的是字节
[/Quote]

晕,看错了。。。。我都不知道怎么看了个“基本”两字,你的意思是只有字节才可以在网络上传输吗?也就是只能传BYTE?
wzp144650 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hongqi162 的回复:]
互联网上传输的是字节
[/Quote]
?基本?我不知道你的基本是否用的恰当,是一定是字节还是有的是?
hongqi162 2009-06-19
  • 打赏
  • 举报
回复
互联网上传输的是字节
evaa006 2009-06-19
  • 打赏
  • 举报
回复
帮顶
yyq136 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hongqi162 的回复:]
互联网上传输的是字节
[/Quote]
是指在互联网上的数据都是采用字节流的形式传输的。
比如说,当你访问webservice,希望从webservice中获取dataset时,有想过webservice是怎样将dataset传输给你的呢,这就牵涉到序列化饭序列化的问题。因为数据之间的传输都是一些字节流,所以webservice在将数据传输给你之前需要将数据序列化为字节流,然后在通过通道将字节流传输到客户端,再通过饭序列化将字节流转换为dataset,这样就完成了数据传输操作。
daone 2009-06-19
  • 打赏
  • 举报
回复
可以自己写个页面定义个源绑定一个DATAVIEW控件,运行后看页面源文件里的VIEWSTATE就清楚了。就是序列化的东东了
风之影子 2009-06-19
  • 打赏
  • 举报
回复
学习了
Tassadar1979 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hongqi162 的回复:]
互联网上传输的是字节
[/Quote]

分流序列化和xml序列化。
bbbbbb888888 2009-06-19
  • 打赏
  • 举报
回复
也就是你怎么把你的ClassA变成 byte[] 或者再由byte[]变成ClassA
lovvver 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wzp144650 的回复:]
引用 19 楼 lovvver 的回复:
内存里可以存放对象,但是网络传输,则只能传输二进制码,也就是说,你要传一个对象到服务器,必须要将这个对象序列化层二进制码才能传输。
一般.net带的对象大多都实现了ISerializable接口,也就是默认支持序列化,在传输的时候会在底层自动序列化成二进制码。
而如果一个对象是你的自定义对象,那么系统是无法自动把你的对象序列化成二进制码的,那么就要求你的对象也实现ISerializable接口,或…
[/Quote]

我说的二进制码,指的就是字节码(byte[])
wzp144650 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lovvver 的回复:]
内存里可以存放对象,但是网络传输,则只能传输二进制码,也就是说,你要传一个对象到服务器,必须要将这个对象序列化层二进制码才能传输。
一般.net带的对象大多都实现了ISerializable接口,也就是默认支持序列化,在传输的时候会在底层自动序列化成二进制码。
而如果一个对象是你的自定义对象,那么系统是无法自动把你的对象序列化成二进制码的,那么就要求你的对象也实现ISerializable接口,或者手动对你的对象做序列化。
[/Quote]

他们所说的字节和你所说的二进制码有什么联系吗?这个感念我很模糊
lovvver 2009-06-19
  • 打赏
  • 举报
回复
内存里可以存放对象,但是网络传输,则只能传输二进制码,也就是说,你要传一个对象到服务器,必须要将这个对象序列化层二进制码才能传输。
一般.net带的对象大多都实现了ISerializable接口,也就是默认支持序列化,在传输的时候会在底层自动序列化成二进制码。
而如果一个对象是你的自定义对象,那么系统是无法自动把你的对象序列化成二进制码的,那么就要求你的对象也实现ISerializable接口,或者手动对你的对象做序列化。
sunday147 2009-06-19
  • 打赏
  • 举报
回复
用字节传输,可以看计算机网络与技术这一本书
vesion 2009-06-19
  • 打赏
  • 举报
回复
假如你想按自己的结构存储一个文件的话就要新建一个文件结构的类。再把这个类序列化就可以保存为本地文件。下次想打开的时候 就直接把这个文件反序列化就可以读回你自己设定的文件信息。
qldsrx 2009-06-19
  • 打赏
  • 举报
回复
举例的话,正好前不久给别人用序列化解决了一个问题。

http://topic.csdn.net/u/20090615/22/41da2271-82ad-4dc0-b6ee-d8d6edcf6daa.html

你看4楼我的回复,他要把一个对象保存到数据列中,就好比往数据库一张表里插入一个对象的内容,这种情况下不序列化就不行。
加载更多回复(9)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧