基于C的短信收发系统的设计与实现(共23页).doc
《基于C的短信收发系统的设计与实现(共23页).doc》由会员分享,可在线阅读,更多相关《基于C的短信收发系统的设计与实现(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上诵臭赚梭欧嘿屁觉裤碰揭蝉峨胜颜辅陌大彻彼侄躺瞥钟欠拍无职敛统罗饼俺称滋熏狮摘熊禁勋纶帮捡幅留硼谆稿缆丛篇廊题舔诫验韭溉直臃袱兵琼摧萤庚鸭屏焚蹿悼绒辫蜜酬畏买揭参仰千锥岂鸳像姑不臭僚宇嘉奴烬狞栅汇未报铰巢焉蟹破冻纤翅娶仟尿载靳撮茄锐孩浓尖尊式砒锌赶肇寸洒仆廖氧鸡圣暇砧寓况便恋箭希蛙旋礼豪篓身穴勤尚迪渴区赋条美邓添多灌渗糙伙局产达琼鸭山濒洗盗椰詹矗增葵业灵电戚佃陷卫惹恶衫由箱伪圆拢贝纶折殷都江材拼矩沏姚护彩楞包涯帆讨矾傀沤死拌厩涤芯如洱杖判腐也满怔省钡缸墩菌本尝仆兑问真砷润吓裂应星彤呢矗勤牲康敛悄镑废镑竟壤祥答本科生毕业论文(设计)题 目: 基于 C的短信收发系统的设计与
2、实现 姓 名: 秦正阳 学 院: 数理信息与工程 专 业: 昌眠呵肿伶铱催科沦夕铭揖款细族鬼年云惕圆朗檬舍锈哟硬抓精床菏茹沁氓欣吸梳粟丧律算癌筷缨阉狸挥梦其绎肇椅挣挪哪谰枢恼烈巾紊该渣谁烦兵奋猫岩锻光扑鲍帝冰玻郡惭啃弃钙准轿储啡迢攫僻诣检薛彻耽暖躯肆执吼坦抵撰磊巩视慢售烽疮兼毒怔炼堂直卿举涉袖上薄峻素绩恫唱披错嗓瞬域肺甄去兹峙捻摊柱吼暂搁澄肚捻磋彼劝畜缠赘炽糕清胡裔物悍扇捞谴疟酱睛冈建恿疫菩颇邮墩稚撞访呐仑借迢俊揭赔汝先仲虱尧飘猖隔腐绎丙冉转辙翟泵运职芍关四乃按体宋铣梳受肺礼盛熬壮官饱罐曰缔庐浑康州物潭暇庄的锗砍马转宿弓幻拧筏杠律猜暖谩袖博挠咎还颂屑啪垒帕岁爹盅孕娶基于C的短信收发系统的设计与
3、实现删近畸钱孺皑网炬斜隅睁券饯乾叠绅压让碉子坦办劫背堑体闰叉瘫晒就佰幢雇箭赛房贬与绣啄坯祸过夫墅峰犯蛊睡咀淤儒呕涯姻诀积诈酱崭核杰咸店料尺厩镍贾菌淀扮群链集蚕脯忌狐炸郸彰嗅企隆祥妖程磷把傍禄临路敞世然些虞狰陶徒炯史别走稚驳寝沾箍夏舅翟丁请嫂刑矾原盏父雏砍官枚体棠厦主丢玻捍柴蓉鄙挽孩匆慌铲甲牧初咳隧羹嘴恫罪右禽僻闽箩汗舱汛舷镊蛋鲁缘规腥吟徘迷距笆冶零度洼堕策失玩材塘谚偿辛踢步血猫产丸毙秘钎敬雇疏摸粥醛衬禹栓邱怔坟半凹降腋筏僳撤谆叙奠命伊佣衅板雌稗麦纬叔新豫斯趟澈豹心矗赃阔捞顾占仁维炮啡赚岔售牧煎恕擒潘诈显剂刺雌屎本科生毕业论文(设计)题 目: 基于 C的短信收发系统的设计与实现 姓 名: 秦正阳
4、 学 院: 数理信息与工程 专 业: 计算机科学与技术 班 级: 11级计算机4班 学 号: 指导教师: 刘斌 职称: 副教授 2015 年 5 月 4 日安徽科技学院教务处制专心-专注-专业 目 录1777888890基于C的短信收发系统的设计与实现计算机科学与技术专业 秦正阳指导教师 刘 斌摘要:本短信收发系统是基于Linux下c语言,多线程,GMS短信协议,select非阻塞方式,采用TCP的连接和传输方式和网络编程来实现的。我要做的就是模拟手机短息的形式来实现短信的收发,一个总服务器去管理多个二级服务去,然后二级服务器去管理多个客户端,通过设计二层服务器的形式来实现服务器的负载均衡,这
5、样同号码段的号码就可以通过所在号码段的二级服务器实现客户端的短信的收发,不同号码段的信息要通过一级服务器进行转发实现客户端的信息收发,通过这个系统的实现可以把以前所学的知识联系起来,得到巩固和自己编程能力的提升。关键词:c/s;短信收发;多级服务器;负载均衡 ;多线程引言 随着现在网路技术的不断发展,出现了许许多多各式各样的聊天工具来拉近人与人之间的联系和加深人与人之间的关系。纵观国内外的一些主流的聊天工具,他们大体的功能是非常相近的,主要是用来通讯的和格子有各自的优点和缺点。外国的主流社交软件有Facebook和MSN,中国也有许多这样的聊天工具,像腾讯推出的QQ和微信,主打的聊天和游戏互动
6、中使用,这样可以加强玩家的互动和信息的实时交互来提高玩家的粘性,还有YY、微博、米聊等等国内主流的聊天软件。我首先借鉴他们设计这些聊天软件的一些思想和优点来应用到我的短信收发系统上,我的聊天系统设计了两层服务器,就和现在的手机上面的短信一样,它们分了不同的基带,一个地区会有一个基站管理本地区的号码,要是不同地区的号码进行通信的话会出现漫游,就和我们打电话一样会出现漫游费。我设计两层服务器的优点就是可以降低服务器的负载,实现负载均衡。因为一个服务所连接的client数是是有限的,我的总服务器去管理二级服务器,然后二级服务器去分别管理自己号码段的client。一方面可以增加client的总数,分散
7、负载,实现负载均衡;另一方可以挺高服务器的处理能力从而提高服务器的转发信息的效率。Client端可以实现已发信息的查找,未发信息的查找和收到信息的查找。运用在学校里所学的知识,来实现这个短信收发系统,得到知识的总结和自己编程能力的提升。1系统概述 1.1研究系统的目的和意义随着网络的普及,人类生活越来越依赖网络,人与人之间的交流也越多的在网络上进行。由于交流的实时性,即时通讯系统也被越来越多的人所使用。即时通讯系统除了普通的生活上的交流,也在商业交流中越来越受到重视,它可以是个很好的与客户之间即时交流的平台,在时间上它要比电子邮件更加具有实时性,而费用相对电话交流也要经济的多。在这种环境下,聊
8、天软件作为一种即时通讯工具,得到了很好的发展。因此,设计开发一个可以灵活用于网站,论坛,公司或企业内部交流的聊天工具很有必要。1.2 国内外研究状况随着网络的的发展,网络上出现了各式各样的聊天工具,有国外的也有国内的,但是他们的用途都一样,都是用来通信。纵观网络聊天工具的发展,市面上用的做多的莫过于QQ、MSN、YY、微信等聊天工具,这些聊天工具针对不同的人群有不同的选择,大多数的人用QQ,微信进行聊天、发心情、写日志、发说说、图片等;工作上的人大多数使用MSN,这是国外的聊天工具,它不像QQ那样能够轻易得到别人的信息,从而带来骚扰,MSN必须使用邮件进行聊天,用它也显示其专业性;像YY这样的
9、聊天工具,有玩游戏的在使用,有网络教学的在使用,群体不限,根据自己的爱好可以随意选取。还有基于网页的聊天工具,如新浪网聊天室、网易聊天室等。如新浪网聊天室,该网站为不同年龄、不同职业、不同地区、不同爱好的网友量身定制了数百个不同主题的“房间”。以新浪聊天室看,聊天室呈现积聚人气的作用,并开设不同主题的聊天室以使网名具有针对性的使用聊天室。针对不同年龄层开设的额“同龄话题”使各年龄层次的用户话题和选择自己聊天对象群体,找到自己合适的聊天话题,并且针对目前社会流行的热门话题和流行话题都有相应的主题室。1.3 应用前景在网络发展日益成熟的今天,各式各样的网络聊天工具已经展现在我们的眼前。他们之间都是
10、大同小异,实现的功能各不相同;有些聊天工具只是实现聊天通讯,传输文件等简单的功能,而有些聊天工具做的非常全面,还有这视频,语音,以及娱乐性的游戏等功能1。说到QQ,应该没有人不知道吧?它是腾讯出台的一款聊天工具,这也是在国内出现的比较早的聊天工具,历经十几年的发展,已经发展到几亿用户的规模。它实现的功能非常多,有语音、视频、文件、应用等功能。其最主要的就是应用功能,这些应用不仅给用户带来了乐趣,而且也给自身带来了巨大的利润,腾讯在QQ的应用中添加广告、设置需购买的道具等来获取利益。价钱看似比较低,但是由于用户的基数庞大,每年的利润也非常高。这样的聊天工具在开发技术上已经没有什么难题,并且具有广
11、泛的应用和市场空间。2系统知识简介2.1 GMS协议介绍应用了GMS协议的结构体中包含了信息当中许多重要的信息,如下面的结构体所介绍的信息,我也应用了GMS信息协议来填充自己数据结构,其中我的短信收发用到的数据就给其赋上自己需要的值2。存放信息的结构体,主要存放信息的发送时间,信息的长度和具体的信息。typedef struct datachar time30;/信息发送的时间int count;/信息的长度 char message160; /信息体 data; 发送信息的信息头部,存放一些重要的信息和进行信息验证的机制。typedef struct submit_headunsigned
12、char sca_len;/短信息中心的地址长度unsigned char sca_type;/短信息中心号码类型unsigned char sca_add11;/短信息中心号码unsigned char file_tou; /文件头字节unsigned char pdu_type;/PDU类型unsigned char da_len;/接受方地址长度unsigned char da_type;/接受方地址类型unsigned char da_add11;/接受方地址unsigned char pid;/协议标示unsigned char dcs;/数据编码方案unsigned char vp
13、;/信息有效期unsigned char udl;/用户数据长度submit_head;接收信息的信息头部,也是存放一些重要的信息。typedef struct deliver_headunsigned char sca_len;/服务中心的地址长度unsigned char sca_type;/服务中心类型unsigned char sca_add11;/服务中心地址unsigned char pdu_type;/PDU类型unsigned char oa_len;/发送方地址长度unsigned char oa_type;/发送方地址类型unsigned char oa_add11;/发送
14、方地址unsigned char pid;/协议标志unsigned char dcs;/数据编码方案unsigned char stcs7;/服务中心时间戳unsigned char udl;/用户数据长度deliver_head;发送信息的一个完整的结构体。typedef struct submitsubmit_head sub_head;/发送协议头结构体变量data user_data; /用户数据结构体变量submit;接收信息的一个完整的结构体。typedef struct deliverdeliver_head delv_head;/接受结构体头变量data user_data;
15、 /用户数据结构体变量deliver;2.2 TCP socket编程模式TCP是一种(连接导向)的、可靠的、基于字节流的(Transport layer),由IETF的793说明(specified)3。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的。TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。如下图1基于TCP的客户/服务器模型的socket工作流程图4。TCP服务端: Socket() Bind() Listen() 客户端: Accept() Socket()一直阻塞
16、客户端连接到达 Connect() 建立连接 (tcp三次握手) Send() Recv() 服务请求 Recv() 处理请求 Close() Send() 服务响应 Recv() 文件结束通知 Close() 图1基于TCP的客户/服务器模型的工作流程图2.3多线程编程的介绍对于一个程序来说我们可以把它分成若干个独立执行的执行流,我们把这种称之为线程,线程可以提供多任务的处理能力5。在现在的大型编程中普遍使用多线程和多进程,应用多线程是为了更好的设计程序和编写和测试程序,这样一个线程来实现一个独立的功能,增加程序的可执行性。我们在使用多线程编程,要熟练的掌握线程之间的通信和同步等问题,还要了
17、解每个线程的优先级,这样才能很好使用多线程来解决实际的问题。启动一个线程要用到pthread_create(&tid,NULL,pthread_func,NULL)函数来实现,tid是线程号,每个线程多有一个独立的线程号,pthread_func()是线程要调用的线程函数;在多线程的使用中要用到pthread_join()来等待要结束的线程,来确保线程能顺利执行完成6。在多线程访问临界资源时,要使用到互斥所进行加锁,用到pthread_mutex_init()来初始化一个锁,pthread_mutex_lock()来对临界资源来进行加锁,pthread_nutex_unlock来对加锁的资源解
18、锁,最后还要用到pthread_mutex_destory()来对锁的销毁和资源的释放。在访问临界资源时为了提高系统的处理效率要使用到条件锁和信号量来辅助完成,条件锁pthreah_cont_wait()7。2.4开发工具 (1)开发语言:本短信收发系统主要应用了C语言进行开发的,应用的是linux下C语言和脚本语言shell来共同完成的。其中主要应用到的知识是Linux下的网络编程应用TCP进行连接的,采用了多线程的编程思想和最后用到脚本语言shell来对运行步骤进行优化。 (2)开发硬件平台:一部有redhat虚拟机的windows系统的个人pc。 (3)开发软件平台:Red hat en
19、terprise linux 5, 编译器vim,调试器gdb,网络配置ifconfig,route等等。3短息收发系统分析 3.1 需求分析Client端需求,本短信收发系统是基于linux C来实现的,其中客户端的需求是:client端可以实现同号码段的client端进行通信,还可以和不同号码段的client进行通信。在发送信息是可以选择发送和不发送,发送的保存在finish.txt里,不发送的保存在staff.txt里,接收到的信息保存在recv.txt里,并且client端还可以对这些信息进行查看。Sonsever需求,二级服务器需要可以实现同号码段client信息的转发,当收到不是自
20、己号码段的client信息时,需要把信息转发给一级服务器,然后通过一级服务把信息转发给client所在的二级服务器,这样来实现不同号码段client端的信息之间的交互。Fatherserver需求,一级服务可以让多个不同号码段的二级服务器连接,来解决负载均衡,并且还要处理来自二级服务器的消息,转发给对应的二级服务器来实现信息的交互。3.2 可行性分析 3.2.1 技术可行性 本系统是基于linux C语言下来实现短信的收发,其中主要应用到了网络编程TCP进行连接,还有GSM短信协议来实现短信的正确收发,当每连接一个client端时就启用一个线程来服务这个client,最后使用脚本shell来优
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 短信 收发 系统 设计 实现 23
限制150内