实验三 消息的创建、发送和接收

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、消息的创建、发送和接收

1.程序

2. 结果

当Clinet发送一个消息后,Server接收该消息,Clinet再发送下一条。也就是说“(Clinet)sent"和“(server)received"的字样在屏幕上交替出现。

3. 分析

message的传送和控制并不保证完全同步,当一个程序不在激活状态的时候,它完全可能继续睡眠,造成了上面的现象,在多次sendmessage后才receivemessage。这-点有助于理解消息传送的实现机理。

二、共享存储区的创建,附接和断接

1.程序

2. 结果

运行的结果和预想的完全一样。但在运行的过程中,发现每当client发送一次数据后,server要等待大约0.1秒才有响应。同样,之后client 又需要等待约0.1秒才发送下一个数据。

3. 分析

出现上述的应答延迟的现象是程序设计的问题。当client端发送了数据后,并没有任何措施通知server端数据已经发出,需要由client的查询才能感知。此时,client端并没有放弃系统的控制权,仍然占用CPU 的时间片。只有当系统进行调度时,切换到了server进程,再进行应答。这个问题,也同样存在于server端到client的应答过程之中。

三、共享存储区的创建,附接和断接(更改)

1.程序

2.结果

更改后的的程序结果更加明确, client发送什么到server端,server 端接收什么更明了。

3.分析

由于其实在二中更改的,除了加上client发送什么到server端,server 端接收什么,其他基本没有变化,但实验结果使得其程序更加和谐,在二中,虽然都是发送,接收,但不明白是否是其自己发送自己接收。

相关文档
最新文档