Socket网络编程学习笔记(5):发送和接收实体类数据
在前面讲述的篇幅中,发送的都是文本信息,我们只要通过Encoding中的几个方法把文本转化成二进制数组就可以利用Socket来传输了,这对于一些基本的信息传输能够得到满足,但对于一些复杂的消息交流,则有些“吃力”。我们有时候会把一些信息封闭在一个类中,如果Socket能够传送类对象,那么一些复杂的问题能够通过面向对象来解决了,即方便又安全。大家都知道,要想在网络上传输信息,必须要经过序列化才行,所以在传送类对象时,首选必须对该类对象进行序列化,才能够在网络上进行传输。
序列化类对象有三种序列化方法:
1、Xml序列化
2、Binary序列化
3、Soap序列化
这几种序列化方法,运用方法相类似,只不过用到的类不一样。在这里也不一一讲述了,有兴趣的朋友可以到网上搜一搜,相信会有不少的收获。这里主要讲一下利用Soap序列化来传送消息。
1、首先我们先来建立一个实体类,用来做消息的载体
1using System;
2using System.Collections.Generic;
3using System.Text; 4
5namespace sbwConsole 6
{
7 [Serializable]
8 public class SocketData 9
{
10 private OperateType _operateType; 11 private OperateInfo _operateInfo; 12 private string _connString; 13 private string _clientIP; 14 private string _serverIP; 15 16
///
17 /// 指令传输数据 18 ///
19 /// 20 ///
21 /// 22 /// 23 ///
24 public SocketData(OperateType operateType, OperateInfo operateInfo, 25 string connString, string clientIP, string serverIP) 26
{
27 _operateType = operateType;
28 _operateInfo = operateInfo; 29 _connString = connString; 30 _clientIP = clientIP; 31 _serverIP = serverIP; 32 } 33 34
///
35 /// 指令类型 36 ///
37 public OperateType OperateType 38 39 40
{
get { return _operateType; } set { _operateType = value; }
41 } 42
///
43 /// 指令信息 44 ///
45 public OperateInfo OperateInfo 46 47 48
{
get { return _operateInfo; } set { _operateInfo = value; }
49 } 50
///
51 /// ASP数据库连接字符串 52 ///
53 public string ConnString 54 55 56
{
get { return _connString; } set { _connString = value; }
57 } 58
///
59 /// 子服务器IP 60 /// 61 public string ClientIP 62 63 64
{
get { return _clientIP; } set { _clientIP = value; }
65 } 66
///
67 /// ASP服务器IP 68 /// 69 public string ServerIP 70 71 72
{
get { return _serverIP; } set { _serverIP = value; }
73 } 74 } 75 76
///
77 /// 指令类型

