2012年12月20日

投票协议:发送和接收

摘要: 通过流发送消息非常简单,只需要创建消息,调用toWire()方法,添加适当的成帧信息,再写入流。当然,接收消息就要按照相反的顺序执行。这个过程适用于TCP协议,而对于UDP协议,不需要显式地成帧,因为UDP协议中保留了消息的边界信息。为了对发送与接收过程进行展示,我们考虑投票服务的如下几点:1... 阅读全文

posted @ 2012-12-20 14:17 吴一达 阅读(337) 评论(0) 推荐(0) 编辑

投票协议:二进制表示方法

摘要: 二进制表示方法 下面我们将展示另一种对投票协议消息进行编码的方法。与基于文本的格式相反,二进制格式使用固定大小的消息。每条消息由一个特殊字节开始,该字节的最高六位为一个"魔术"值010101。这一点少量的冗余信息为接收者收到适当的投票消息提供了一定程度的保证。该字节的最低两位对两个布尔值进... 阅读全文

posted @ 2012-12-20 14:14 吴一达 阅读(224) 评论(0) 推荐(0) 编辑

投票协议:基于文本的表示方法

摘要: 首先,我们介绍一个用文本方式对消息进行编码的版本。该协议指定使用US-ASCII字符集对文本进行编码。消息的开头是一个所谓的"魔术字符串",即一个字符序列,用于接收者快速将投票协议的消息和网络中随机到来的垃圾消息区分开。投票/查询布尔值被编码成字符形式,'v'表示投票消息,'i'表示查询消息。... 阅读全文

posted @ 2012-12-20 14:13 吴一达 阅读(217) 评论(0) 推荐(0) 编辑

投票协议:构建和解析协议消息

摘要: 我们再看一个简单的例子,对在实现别人定义的协议时可能用到的技术进行了介绍。这个例子程序是一个简单的"投票"协议,如图3.2所示。这里,一个客户端向服务器发送了一个请求消息,消息中包含了一个候选人ID,范围是0至1000。 Vote Reques:投票请求, Candidate:候选人,Vot... 阅读全文

posted @ 2012-12-20 14:11 吴一达 阅读(195) 评论(0) 推荐(0) 编辑

导航