2024年2月20日发(作者:)

windows网络编程答案

windows网络编程答案

【篇一:2014大学windows网络程序设计期末复习试

卷模拟习题1】

习题1

1.以下哪个是tcp/ip模型?( b )

a.应用层,表示层,网络层,物理层; b.应用层,传输层,网络层,链路层

c.应用层,传输层,链路层,物理层 d.应用层,传输层,网络层,物理层

2.p2p的设计架构不包含以下哪一种?( c )

a.集中式架构b.完全分布式架构

c.点对点架构d.混合型架构

请求方法不包括如下哪一种 ( b )

a.

c.get

的作用不包括( c )

a.文件共享; b. 通过应用程序直接或间接使用远程主机;

c.提供一致性的协议,避免用户在不同主机上有相同的操作方式;

d. 提供可靠及有效率的数据传输;

与pop3的端口分别是:( b )

a.25,75b. 25,110

c.21,75d. 21,110

地址是192.168.100.2,子网掩码是255.255.255.0,则其网段

的广播地址是( c )

a.192.168.100.1 b.192.168.100.0

c.192.168.100.255 d.255.255.255.255

的特点不包括如下哪一点( c )

a.面向连接b.全双工数据传送

c.传输速度快 d.面向字节流

8.关于线程哪一点是对的。( d )

a.任何一个c#程序都有一个默认的线程,该线程是后台线程;

b. 每个进程都有一个线程池。线程池默认大小有35个线程;

c.线程池中的线程都是前台线程;

9.在internet中用一个三元组可以在全局中唯一标识一个应用层进程,这不包括下列哪一种( a )

a.网络层协议 地址

c.端口号d.传输层协议

/ip协议簇中,哪一种是网络层协议( b )

a.

c.

1. 端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535 (f)

2. 线程池中既有后台线程也有前台线程,某进程的所有前台线程都终止了,后台进程也自

然终止。(f)

3. 在smtp中,电子邮件由信封、首部和正文3部分组成。(t)

4. 数字签名是私钥加密,公钥解密。(t)

5. esmtp与smtp的区别是发送邮件时要求用户身份验证。(t)

6. http的流水线方式是指客户在收到前一个响应后才能发出下一个请求。(f)

7. http(hypertext transfer protocol),超文本传输协议,目前的版本是1.0 。(f)

8. nat功能是只能用硬件来实现(f)

9. ip地址有a,b,c,d,e五类(f)

10. udp不需要连接,速度比tcp快;(t)

11. udp传输的数据无消息边界;(f)

12. socket类比位于底层tcpclient类提供了更高层次的抽象,它

们封装tcp套接字的创建,

不需要处理连接的细节。(f)

13. 监听套接字与新创建的套接字所使用的端口不同。(f)

14. 本机回送地址是127.0.0.1 (t)

15. socket套接字的accept()方法若检测到监听套接字的缓冲区是空的话,立刻返回(f)

1.什么是端口,网络通信中为什么要引入端口?(6分)

答: 端口是tcp/ip协议簇中,应用层进程与传输层协议实体间的通信接口。端口是操作系统可分配的一种资源;应用程序(进程)通过系统调用与某端口绑定(binding)后,传输层传给该端口的数据都被相应进程接收,相应进程发给传输层的数据都通过该端口输出。

1. 在网络通信过程中,需要唯一识别通信两端的端点,即运行于某机器中的应用程序。如

果没有引入端口,则只能通过进程号进行识别。进程号是系统动态分

配的,不同的系统会使用不同的进程标识符,应用程序在运行之前并不

知道自己的进程号,如果需要运行后再广播进程号则很难保证通信的

顺利进行。而引入端口后,就可以利用端口号识别应用程序,同时通

过固定端口号来识别和使用公共服务,如http和ftp等。

2.什么是套接字?(5分)

答:套接字是对网络中不同主机上应用进程之间进行双向通信的端

点的抽象,一个套接字就是网络上进程通信的一端,提供了应用进

程利用网络协议栈交换数据的机制。

3.套接字有哪些种类,分别有什么特点?(6分)

答:

(1)流式套接字。提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收;内设流量限制,避免数据

超流限;数据被看做是字节流,无长度限制;

(2)数据报式套接字。提供无连接服务;数据包以独立包形式发送,不提供无差错保证,数据可能丢失或重复,并且接收顺序混乱。

(3)原始套接字。原始套接字允许对较低层次的协议,如ip、

icmp直接访问,用于检验新的协议的实现

4.消息无边界问题有哪几种解决方法,各有什么优缺点?(6分)答:

1) 发送固定消息的长度。程序设计起来容易,但长度的制定没有统

一的标准。

2) 将消息长度与消息一起发送。长度可自由控制,但长度信息占有

一定的比例,影响效率。

3) 使用特殊标记分信息。设计起来简单,但发送的信息中不能含有

标记符。

5.什么是网络穿越,如何实现udp网络穿越?(6分)

答:网络穿越是指在网络通信过程中,通信的一端如果是内网地址时,需要利用nat进行地址转换。由于nat不允许外部主机主动访问内部主机,因此通信的一端在发送消息前,必须解决如何不被另一

端nat设备拦截的问题,即如何穿越对方nat的阻止。基于server

的udp网络穿越

(1)客户端a与客户端b分别登录服务器s;

(2) a发送命令给s,请求s向b发出打洞请求。

(3) s发送打洞命令给b;

(4) b收到消息后向a发送消息;

(5) a向b发送消息,实现网络穿越;

协议的两种工作方式是什么,请简述。(6分)

答:

(1)port方式,即客户主动式。客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端使用并监听某临时端口,并在命令链路上用port方式告诉服务器采用主动传输方式。于是服务器从20端口向客户端的临时端口发送连接请求,建立一条数据链路来传送数据。(2)pasv方式,即客户被动式。客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端告诉服务器采用被动传输方式。于是服务器使用并监听某临时端口,并在命令链路上用pasv命令告诉客户端对应的端口号。最后客户端向服务器发送连接请求,建立一条数据链路来传送数据。

协议的内容有哪些?(5分)

答:

1. http请求信息。

2. http方法。

3. http响应信息。

4. url

5. http流程

无状态与持久连接分别是什么意思,请简述。(5分)

答:无状态的意思是,每一个请求与响应是互相独立的。而持久连接是,服务器会在一定时间内保留该连接的相关信息。

9.在ie地址栏中输入域名后的http流程。(5分)

1. url自动解析;

2. 获取ip,建立tcp连接;

3. 客户端浏览器向服务器发出http请求;

4. web服务器应答,并向浏览器发送数据;

5. web服务器关闭tcp连接。

3流程有哪几个阶段?(5分)

答:

1) 授权阶段,认证;

2) 操作阶段,邮件接收;

3) 更新阶段,更新邮件信箱;

【篇二:2014大学windows网络程序设计期末复习试

卷模拟习题5】

习题5 1 tcp和udp连接的区别,分别适用于哪些应用场合?

2 tcp连接建立的过程(三次握手)

tcp双方都可以发送数据给对方,所以它是全双工的协议

tcp建立连接的过程通常被称为三次握手

1)syn_sent (syn sent)

发起方发送一个设置了syn标志的tcp数据包和初始化序列号(initial sequence number, isn)以及端口号给接收方,这常被叫做syn数据包或syn报文

连接的状态被称做syn_sent

2)syn_rcvd (syn recieved)

接收方收到请求,给发起方发送一个设置了syn与ack标志位的tcp数据包做为应答,另外设置一个比客户机发送来的isn大1个单位的isn值,这常被称为syn_ack数据包或syn_ack报文

这时连接的状态称做syn_rcvd

3)established

发起方然后发送一个带有ack应答和增1后的isn标志来确认

syn_ack

至此,完成了三次握手,此时的连接状态为连结成功:

established 3 sockaddr与sockaddr_in的区别,为什么要用两个数据结构?如何赋值?

sockaddr 包括 sockaddr_in和sockaddr_un等,前者用于inet

(网络)后者用于unix文件。sockaddr是winsockapi中参数的基本形式,sockaddr_in是其ip地址结构。

sockaddr是通用的套接字地址,而sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况

下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。

4 建立tcp连接客户端和服务端的过程。为什么服务端要调用bind 函数而客户端不用?为什么服务端需要指定端口而客户端不用?建立

基于udp的收发程序的过程

服务端则需用bind函数连接和接收数据报

因为服务程序必须调用bind函数来给其绑定一个ip地址和一个特定的端口号,而客户端不用。服务端需要通过指定端口来接收客户的请求连接。

5 简述ip协议的特点

tcp/ip协议的特点

①tcp/ip协议并不依赖于特定的网络传输硬件,所以 tcpiip协议能够集成各种各样的网络。用户能够使用以太网(ethernet)、令牌环网(token ring network)、拨号线路(dial-upline)、x.25 网以及所有的网络传输硬件。

②tcp/ip 协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑internet,tcp/ip协议也获得了广泛的支持。所以 tcp/ip协议成为一种联合各中硬件和软件的实用系统。

③tcp/ip 工作站和网络使用统一的全球范围寻址系统,在世界范围内给每个tcp/ip 网络指定唯一的地址。这样就使得无论用户的物理地址在哪儿,任何其他用户都能访问该用户。 6 广播组播通信与点对点通信的区别

广播主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要)。

组播主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将

组内数据传输给那些加入组的主机。

点对点主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。

至于区别嘛, 从mac地址上来分, mac地址是6个字节的, 如果全是1就是广播,如果第一个字节是01就是组播啦, 其它的就是单播。

7 阻塞与非阻塞通信的区别

以套接字为例,在阻塞模式下,利用tcp协议发送一个报文时,如

果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待

直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不

需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。

对于udp协议而言,由于udp没有发送缓存,因此所有udp协议

即使在阻塞模式下也不会发生阻塞。

对于面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直

到有连接请求到达;但在非阻塞模式下,如果没有连接请求到达,

等待连接调用将直接返回。 8 select函数工作机制分析

select()的机制中提供一fd_set的数据结构,实际上是一long类型

的数组,每一个数组元素都能与一打开的文件句柄(不管是socket

句柄,还是其他文件或

命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,

当调用select()时,由内核根据io状态修改fd_set的内容,由此

通知执行了select()的进程哪一socket或文件可读

9 使用事件通知模型实现异步传输的过程描述(自己的语言),wsaeventselect函数的作用说明

wsaasyncselect 使用此模型,应用程序可在一个套接字上进行以windows消息为基础的网络事件通知,此模型提供了读写数据能力

的异步通知,但不提供异步数据传送。异步数据传送有“重叠及完成

端口模型提供”。

过程: (1)初始化套接字相关信息:

(2) 开始启动一个事件通知。wsaasyncselect(sock, hwnd, 自定义

消息, 网络事件)

(3) 响应窗口的自定义消息处理函数,其中lparam的高位字包含了

可能出现的错误

代码,低字节表示发生的网络事件。wparam表示发生网络事件的

套接字。

10 wsaasyncselect函数和windows消息机制的结合过程,一般

来说,监听套接字需要处理哪些网络事件?会话套接字需要处理哪

些网络事件?

11 windows消息处理过程

窗口消息处理程序与窗口类别相关,窗口类别是程序呼叫registerclass注册的。依据该类别建立的窗口使用这个窗口消息处理程序来处理窗口的所有消息。windows通过呼叫窗口消息处理程序对窗口发送消息。

在第一次建立窗口时,windows呼叫wndproc。在窗口关闭时,windows也呼叫wndproc。窗口改变大小、移动或者变成图示时,从

菜单中选择某一项目、挪动滚动条、按下鼠标按钮或者从键盘输入字符时,以及窗口显示区域必须被更新时,windows都要呼叫wndproc。

12 windows消息处理函数的四个参数分别是什么?携带了什么信息?

1、消息的组成:一个消息由一个消息名称(uint),和两个参数(wparam,lparam)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。

2、谁将收到消息:一个消息必须由一个窗口接收。在窗口的过程(wndproc)中可以对消息进行分析,对自己感兴趣的消息进行处理。

3、未处理的消息到那里去了:m$为窗口编写了默认的窗口过程,这个窗口过程将负责处理那些你不处理消息。正因为有了这个默认窗口过程我们才可以利用windows的窗口进行开发而不必过多关注窗口各种消息的处理。

4、窗口句柄:说到消息就不能不说窗口句柄,系统通过窗口句柄来在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。

13 windows的线程函数使用什么作为参数?如果要从主线程(通常为界面线程)传递数据给工作线程,应如何传递?如果要从工作线程传递数据给主线程(界面线程有窗口),应如何传递?

线程的创建和终止

windows api提供了createthread()函数来创建一个线程。其原型如下所示: handle createthread(lpsecurity_attributes secattr,

size_t stacksize,

lpthread_start_routine threadfunc,

lpvoid param,

dword flags,

lpdword threadid);

在此,secattr是一个用来描述线程的安全属性的指针。如果

secattr是null,就会使用默认的安全描述符。

每个线程都具有自己的堆栈。可以使用stacksize参数来按字节指

定新线程堆栈的大小。如果这个整数值为0,那么这个线程堆栈的大

小与创建它的线程相同。如果需要的话,这个堆栈可以扩展。(通常

使用0来指定线程堆栈的大小)。每个线程都在创建它的进程中通过

调用线程函数来开始执行。线程的执行一直持续到线程函数返回。

这个函数的地址(也就是线程的入口点)在threadfunc中指定。每个

线程函数都必须具有这样的原型:

dword winapi threadfunc(lpvoid param);

需要传递给新线程的任何参数都在createthread()的param中指定。线程函数在它的参数中接收这个32位的值。这个参数可以用作任何

目的。函数返回它的退出状态。

参数flags确定了线程的执行状态。如果它是0,线程会立即执行。如果是create_suspend,线程则以挂起状态创建并等待执行。(可

以通过调用resumethread()来开始执行,稍后讨论)。

与线程相关的标识符以threadid所指向的长整型返回。

如果成功,函数则向线程返回一个句柄。如果失败,则返回null。

可以通过调用closehandle()来显式销毁这个线程。否则,会在父进

程结束时自动销毁它。如前所述,当线程的入口函数返回时终止执

行线程。进程也可以使用

terminatethread()或者exitthread()来手动终止线程,这两个函数

的原型如下:

bool terminatethread(handle thread, dword status);

void exitthread(dword status);

对于terminatethread(),thread是将要终止的线程的句柄。exitthread()只能用来终止调用了exitthread()的线程。对于两个函

数而言,status是终止状态。terminatethread()如果成功,则会返

回非0值,否则返回0。

调用exitthread()在功能上等价于允许线程函数正常返回。这意味

着堆栈会正确地重新设置。当使用terminatethread()结束线程时,

线程会立刻终止,而会执行任何特定的清理任务。另外,terminatethread()可能会停止正在执行重要操作的线程。为此,当

入口函数返回时,通常最好(也是最容易的)让线程正常终止。

14 windows的msg结构包括哪些内容?

在windows程序中,消息是由msg结构体来表示的。msg结构体

的定义如下(参见msdn):

typedef struct tagmsg {

hwnd hwnd;

uint message;

wparam wparam;

lparam lparam;

【篇三:2014大学windows网络编程(机械工业出版社)

课后习题解答】

ass=txt>第一章网络应用程序设计基础

习题

1. tcp/ip协议栈的五个层次是什么?在这些层次中,每层的主要任

务是什么?

解答:tcp/ip参考模型分为五个层次:应用层、传输层、网络层、

链路层和物理层。以下分别介绍各层的主要功能。

应用层是网络应用程序及其应用层协议存留的层次。该层包括了

有与网络相关的高层协议,如文件传输协议(file transfer

protocol,ftp)、超文本传输协议(hypertext transfer protocol,http)、telent(远程终端协议)、简单邮件传送协议(simple mail

transfer protocol,smtp)、因特网中继聊天(internet relay

chat,irc)、网络新闻传输协议(network news transfer protocol,nntp)等。

传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议,即:传输控制协议(transmission control protocol,tcp)和用户数据报协议(user

datagram protocol,udp)。

网络层是整个tcp/ip协议栈的核心。它的功能是通过路径选择把分

组发往目标网络或主机,进行网络拥塞控制以及差错控制。

链路层负责物理层和网络层之间的通信,将网络层接收到的数据分

割成特定的可被物理层传输的帧,并交付物理层进行实际的数据传送。

物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个

节点。该层中的协议仍然是链路相关的,并且进一步与链路(如双

绞线、单模光纤)的实际传输媒体相关。对应于不同的传输媒体,

跨越这些链路移动一个比特的方式不同。

2. 请分析路由器、链路层交换机和主机分别处理tcp/ip协议栈中的

哪些层次?

解答:路由器处理tcp/ip协议栈的物理层、链路层和网络层;

链路层交换机处理tcp/ip协议栈的物理层和链路层;

主机处理tcp/ip协议栈的物理层、链路层、网络层、传输层和应

用层。

3. 请阐述nat技术的主要实现方式,并思考nat技术对网络应用程

序的使用带来哪些影

响?

解答:网络地址转换(network address translation,nat)是接

入广域网(wan)的一种技术,能够将私有(保留)地址转化为合法的ip地址,它被广泛应用于各种类型internet接入方式和各种类型

的网络中。nat的实现方式有三种,即静态转换、动态转换和端口多

路复用。

nat有效解决了ip地址短缺的问题,但是它也带来了一些新的问题。主要体现在:处于nat后面的主机不能充当服务器直接接收外部主

机的连接请求,必须对nat设备进行相应的配置才能完成外部地址

与内部服务器地址的映射;

处于不同nat之后的两台主机无法建立直接的udp或tcp连接,必

须使用中介服务器来帮助它们完成初始化的工作。

4. 某业务要求实现一个局域网上网行为监控的软件,能够对局域网

内用户的上网行为(包

括访问站点、使用聊天工具、发布言论等)进行截获和分析,请选

择一个合适的网络程序设计方法,并说明该软件设计的主要流程。

解答:选择使用具有较强数据捕获能力的网络编程方法,如

winpcap编程或winsock编程中的原始套接字。局域网上网行为监

控软件的主要流程包括:

1)通过交换机的镜像端口或分光方式,搭建局域网流量截获环境,

能够将局域网上下行的网络流量复制出来进行后续分析;

2)对镜像出的网络流量进行捕获,得到原始数据;

3)对原始数据进行过滤,识别并保留与上网行为监控相关的协议数据,如http、smtp、qq通信协议等;

4)提取不同协议中监控者感兴趣的信息,如访问网址、聊天对象、

发布言论等;

5)分析数据,进行重点用户监控和异常行为检测。

第二章网络程序通信模型

习题

1. 面向少量客户持续请求的服务器和面向大量客户短期请求的服务器在设计中有哪些区

别?

解答:面向少量客户持续请求的服务器在单位时间内处理的客户请求数量是有限的,但服务器与每个客户端之间的交互时间和频率是持续的。在这种情况下,服务器一般设计为并发服务器,为每个客户端分配专门的线程以处理其复杂的业务需求。

面向大量客户短期请求的服务器在同一时间可能面临成百上千个客户的大量请求,但每个客户端的请求与响应比较简单。在这种情况下,服务器需要根据客户的具体业务需求来设计。如果是类似于时间服务的单次查询-响应服务,可选择循环服务器串行响应每个客户端的请求,避免线程膨胀和维护的复杂性;如果是类似于web访问较复杂的服务,可选择基于完成端口的异步i/o,与线程池联合管理多个客户端的请求。

2. 某业务需要实现一个文件服务器,请给出该文件服务器的设计要点。

解答:文件服务器主要处理文件的上传与下载业务,在设计时需要考虑以下要点:

1)用户鉴别与权限管理。

文件服务器应具备一定的用户登录和权限管理能力,以辨别用户身份,保护文件访问的合法性。

2)数据传输可靠性。

为了确保文件服务器的传输可靠性,在传输协议选择上,可以使用tcp协议自定义文件传输过程,完成数据传输;或者使用ftp协议,用控制流进行用户授权和传输管理,用

数据流具体传送文件。

3)数据传输的效率。

考虑到用户上传和下载大数据的现实体验,文件服务器应提供高效的数据传输能力,比如使用多线程机制提高效率,使用p2p模型支持多点下载等。

4)断点续传

文件服务器应提供断点续传能力,确保在用户下载过程中断并恢复后,能够保存之前的数据和状态并继续后续的下载任务。

第三章网络数据的内容与形态

习题

1. 假设应用程序使用有符号短整型给端口号赋值,当端口号大于32768时,端口号的具体

值为多少?是否合理?

解答:有符号短整型能够表示的数据范围是-32768~32767,当端口

号n大于32768时,短整型最左边一位为1,端口号的值为负数,

即-(216-n),这样表示是不合理的,应该选用无符号短整型来描述端口号。

2. 大端字节顺序和小端字节顺序是cpu处理多字节数的不同方式。

例如“汉”字的unicode

编码是0x6c49。那么存储在内存中时数据是如何存储呢?请在自己的系统平台下观察字节在内存中的具体存储方式。

解答:在基于x86平台的pc机中,汉字的unicode编码是6c49,存储在内存中是小端字节序的,具体存储顺序如下:

数值: 0x6c49015小端字节顺序0x490x6c

3. 试考虑一个15字节的消息结构:

structintegermessage {

uint8_t onebyte;

uint16_t twobytes;

uint32_t fourbytes;

uint64_t eightbytes;

}

请问,该消息结构在内存中的实际布置如何?该结构的长度为多少?解答:由于字节对齐的原因,该消息结构在内存中的实际布置如下: 4. 假设一个端口扫描应用程序被设计为递增ip地址和tcp端口,并

手工构造和发送tcp扫描包给目标方,那么在每次发送数据前,tcp

扫描包的哪些字段需要修改,如何修改?

解答:tcp端口扫描程序面向给定的目的主机,对指定的端口范围

进行扫描,扫描过程一般是向目标主机的端口号发送syn请求,并

接收对方的应答,如果对方反馈了syn应答包则说明该端口开放,

否则认为端口不开放。

手工构造tcp扫描包涉及到ip首部和tcp首部的构造,那么在探测

过程中,每次tcp扫描包需要修改的字段主要有:ip首部中目的ip

地址、ip首部的校验和清零后重新计算、tcp首部的目标端口号、

tcp首部的校验和清零后重新计算。

5. 请设计一个远程投票系统的消息传送协议,具体内容包括:

1)投票协议标识

2)投票消息类型

3)投票候选人标识

4)投票结果

使用文本串和二进制两种方式设计投票消息以满足以上需求。

解答:基于文本串的消息描述方式需要定义一些固定含义的文本串来标识消息内容。比如:“vot”指明投票协议,“type:”指明消息类型,“candidate:”指明候选人,“result:”指明结果。则一个具体的消息可以表示为由消息标识声明的文本串,如“vot type:2;candidate:peter;result:true”,假设投票消息传送协议基于tcp

协议承载,在具体传输过程中,使用一种编码方式(如:unicode

编码)对该文本串进行描述,并作为tcp