基于C的短信收发系统的设计与实现毕业设计 - 图文(4)

2019-03-28 21:16

图12客户端发送信息图

如图12所示是夸号码段发送信息的,是131号码段的client端,发送给130号码的client,它需要经过131二级服务器转发给一级服务器,然后一级服务器再把信息转发给130这个二级服务器,最后130这个二级服务器把信息转发给130对应的客户端,这是信息转发的一个具体流程。

13111client send()函数把信息发给131二级服务器。 send(cfd,&send_msg,sizeof(submit),0);

131二级服务器通过号码的匹配没有找到13011的client端,就把信息转发个一级服务器,让一级服务器处理。

msg one_scli;

strncpy(one_scli.num,send_msg.delv_head.oa_add,3);

printf(\ //send(sfd,&one_scli,sizeof(msg),0); send(sfd,&send_msg,sizeof(deliver),0);

一级服务器接收到信息就会进行匹配,然后找到13011client所在的130的二级服务器,然后就把信息转发给130这个二级服务器。

memset(&send_msg,0,sizeof(send_msg));

n = recv(client.fd,&send_msg,sizeof(send_msg),0); if(n <= 0) {

printf(\ return ; }

for(i = 0;i < geshu;i++) {

if(0 ==

strncmp(send_msg.delv_head.oa_add,client.address[i].num,3))

{

send(client.address[i].fd,&send_msg,sizeof(send_msg),0); } }

130二级服务器接收到一级服务器的信息时,就会通过号码的匹配吧信息发给13011这个客户端,实现了夸号码段转发。 deliver send_msg; int i;

n = recv(sfd,&send_msg,sizeof(deliver),0); for(i = 0;i < geshu; i ++) {

if(0 == strcmp(all_cli[i].num,send_msg.delv_head.oa_add)) {

char ss[11];

strcpy(ss,send_msg.delv_head.oa_add);

strcpy(send_msg.user_data.time,send_msg.user_data.time);

strcpy(send_msg.user_data.message,send_msg.user_data.message); strcpy(send_msg.delv_head.oa_add,send_msg.delv_head.sca_add); send(all_cli[i].fd,&send_msg,sizeof(deliver),0); printf(\ siccess****\\n\ break; } }

图13收信息运行图

如图13所示是查看收信箱的信息,其中调用了recv_print_(argv[4])函数把储存在文件中的短信信息多打印在终端上,可以显示短信的发送者号码和发送时间和具体的短信内容。

void recv_print_() { int i = 0; int j; MESSAGE arr_msg[100]; FILE *fp = NULL; int leng; char chose; fp = fopen(\ if(NULL == fp) {

printf(\ return ; } while(1) {

memset(&arr_msg[i],0,sizeof(MESSAGE)); fread(&arr_msg[i],sizeof(MESSAGE),1,fp); i++;

if(feof(fp)) break; } for(j = 0;j

leng = j + 1; fflush(stdout);

printf(\_msg[j].time,arr_msg[j].message);

}

6.系统测试

测试的目的就是为了是寻找程序中的错误,而且是尽可能的去找出程序中的尽可能多错误[11]。程序员写的一个程序并非是写完就是完美的,未免会存在某些规避不了错误。如果程序员不能及时的将这些错误找出来并修改,有可能会造成系统无法正常工作造成一些损失。短信收发系统中一旦出了错误系统将无法运行,对人们的正常通信将带来一些麻烦。所以要通过测试,尽量的减少程序中的错误,从而达到系统稳定运作的目的,使短信收发系统工作不会收到影响。

图14一级服务器测试图

如图14所示是测试一级服务器的最大的负载量,连了十几个二级服务进行测试,看在多个二级服务器连接时一级服务器是否能正常的工作,经过测试一级服务还是可以顺利的实现信息的转发的。

图15二级服务器测试图

如图15所示是大量的client端连接到二级服务器上的,然后在测试二级服务器能否把信息的传递,在测试的过程中由于电脑性能的缘故,在信息发送的时候会出现一些的卡顿,但是信息还是可以正常的发送的。

通过如上的测试,可以实现负载均衡,这种方式可以能让更多的client进行连接,通过二级服务器来降低一级服务器的负载,同时也提高了信息的转发效率了性能。另一方面测试可以检测出系统中的一些bug,有些bug只有通过大量的重复测试才可以显示出来的,然后在解掉bug,优化系统的功能,让用户能够有更好的用户体验。

7 开发总结

经过几个月终于把自己的系统完成了和毕业论文完成,顿时感觉自己轻松了许多,但是另一方面也有一点不舍,因为毕业完成了说明我们离毕业的步伐又近了一步,但是也是我们人生的另一个起点。在这几个月当中多是利用晚上的时间去编写程序的,在编写程序的过程中也遇到很多的苦难,用对一些知识还不是很熟,用起来会出现一些错误,但是最终通过网络,通过指导老师还是把这些问题给解决了。在此过程中对以前的许多知识得到了很好的巩固和复习,还有系统中 应用到的一些新知识,自己通过网络去学然后去应用。因为自己知识体系还不是特别的完整,编程能力也没有特别的强,所以系统并没有那么的完善,所以在以后的工作中还是要继续的学习,提升自己的编程能力和分析问题的能力。 致谢

光阴似箭,日月如梭。转眼间大学的四年就要结束了,能让我的大学画上完美的句号和毕业答辩能够取得圆满的成功。我要感谢多年培育我的老师们和指导我毕设完成的指导老师,因为在写毕设的这段时间我一直在外地实习,学校有什么事刘斌老师多会第一时间的通知我,并且会细心的和我们一些写论文的技巧,和在技术给予一定的帮助。帮助我解决一些自己不能够很好解决的问题,这样我的毕业设计才能顺利的完成。最后还是要深深的感谢我的指导老师刘斌老师,这样才能够让我的大学画上完美的句号。 参考文献

[1]赵敏哲.64位Linux操作系统与应用实例[M].北京:机械工业出版社,2001. [2]庞丽萍.操作系统原理(3版)[M].武汉:华中科技大学出版社,2000. [3]张饶学.Linux网络编程[M].北京:清华大学出版社,2000.

[5]郑燕飞,余海燕.linux的多线程机制探讨与实践[J].计算机应用.2001.1, 21(1):81-82 [6]王群,许中万.Linux优势分析[J].计算机与现代化,2003(10):7-8.

[7]任泰明著. TCP/IP协议与网络编程[M]. 西安:西安电子科技大学出版社. 2004. [8]谢希仁. 计算机网络(5版)[M]. 西安:电子工业出版社. 2007.6 [9]陈剑.基于socket的进程间通信平台的设计与实现[D].东北大学.2009. [10]赵颖,韩秀梅,马宏骞.linux下的c语言编程[J].辽林工学院学报.2004.4

[11]陈波,石旭刚,史故臣.嵌入式c语言在系统开发中的代码优化[J].计算机时代.2008,(11):55-56.

英文摘要

Design and implementation of SMS Linux transceiver system based on C

Student majoring in computer science and technology Qin ZhangYang

Tutor Liu Bin


基于C的短信收发系统的设计与实现毕业设计 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011年普通高中学业水平考试模拟试题(地理)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: