实验三 消息的创建、发送和接收
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 端接收什么,其他基本没有变化,但实验结果使得其程序更加和谐,在二中,虽然都是发送,接收,但不明白是否是其自己发送自己接收。