网络软件设计——拆除连接.pptx
《网络软件设计——拆除连接.pptx》由会员分享,可在线阅读,更多相关《网络软件设计——拆除连接.pptx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1拆除连接所以,什么叫“通信结束”?双方都了解对方没有新的数据时怎样“结束”连接?核心问题怎样了解对方没有新数据?怎样被对方了解自己没有新数据?第1页/共17页2拆除连接连接关闭的相关问题有没有多种选择?如关闭双向连接中的一向shutdown(s,SD_SEND);shutdown(s,SD_RECV);对待发/待收数据的处理?如一方强行断链系统发送完待发数据系统丢弃所有的数据要不要释放资源?可否继续利用套接字建立新的连接新的连接新的套接字第2页/共17页3拆除连接“通信结束”的方法讨论联想日常生活中,挂电话的情况1、两个人商量好,然后各自挂机过于依赖高层协议,有碍服务器程序的通用性2、一方挂
2、机,另一方听到忙音后挂机过于粗暴3、对于双向通信,A方通知“我没有新数据”了,B方收到通知后,发完自己的数据后就可以挂机了。可以让双方的数据都得到完整交换雅致关闭设计设计第3页/共17页4拆除连接分别设计各种方式的算法高层协商粗暴关闭雅致关闭第4页/共17页5拆除连接拆除连接1 1、两个人商量好,然后各自挂机、两个人商量好,然后各自挂机A AB B(want to cease the conversation)want to cease the conversation)data=“I want to stop”;data=“I want to stop”;send(data);send(da
3、ta);recv(data);recv(data);recv(data);recv(data);if(data=“I want to stop”)if(data=“I want to stop”)if(state=AGREE)if(state=AGREE)send(“I agree”);send(“I agree”);if(data=“I agree”)if(data=“I agree”)closesocket(s);closesocket(s);goto end;goto end;elseelsecontinue conversationcontinue conversation goto
4、back;goto back;closesocket(s);closesocket(s);goto end;goto end;elseelsesend(“I have more words”)send(“I have more words”)continue conversationcontinue conversation 第5页/共17页6拆除连接拆除连接2 2、一方挂机,另一方听到忙音后挂机、一方挂机,另一方听到忙音后挂机A AB B(want to cease the conversation)want to cease the conversation)closesocket(s);
5、closesocket(s);send(data);send(data);if(recv(data)=0)if(recv(data)0)while(recv(data)0)continue conversation;continue conversation;closesocket(s);closesocket(s);第6页/共17页73 3、对于双向通信,、对于双向通信,A A方通知方通知“我没有新数据我没有新数据”了,了,B B方收到通知方收到通知在发完数据后就可以挂机了。在发完数据后就可以挂机了。拆除连接拆除连接A AB B(want to cease the conversation)
6、want to cease the conversation)if if(state=NO_DATA_SEND)state=NO_DATA_SEND)shutdown(SD_SEND);shutdown(SD_SEND);if(recv(data)=0)if(recv(data)0)while(recv(data)0)process data;process data;closesocket(s);closesocket(s);雅致关闭雅致关闭思考:在思考:在process dataprocess data中中如果需要发出数据怎么办?如果需要发出数据怎么办?第7页/共17页8雅致关闭“雅致”关
7、闭是计算机通信系统的特色“雅致”关闭可以使双方的数据都能完整接收/发送雅致关闭有多种方式(算法)可以实现注意雅致关闭与高层协商的区别!高层协商的缺点在于协商的可靠性不高雅致关闭的优点在于通过系统来通报希望结束的信息,提高了通用性和可靠性,降低了实现难度用户通知系统(“我没有数据了”)shutdown(SD_SEND);系统通知用户(“对方没有数据了”)recv()函数的返回值为0!第8页/共17页9雅致关闭的实现方法一、利用shutdown标准做法算法思路A AB B无需要发送的数据后无需要发送的数据后shutdownshutdown(SD_SENDSD_SEND););可以接收对方的数据直到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络软件 设计 拆除 连接
限制150内