欢迎来到天天文库
浏览记录
ID:26048730
大小:376.00 KB
页数:14页
时间:2018-11-24
《linux仿qq通信系统课程设计最终修改版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计一、摘要即时通信,由于具有实时性、跨平台性、成本低、效率高等优点而受到广泛的使用。设计并实现一个能够处理多用户进行实时,安全的即时通信系统具有较强的现实意义。本文设计并实现了在linux环境里基于局域网内的简单即时通信系统,系统采用C/S模式,底层通信通过socket套接字接口实现,能进行简单实时通信并能实现文件的传输。关键字:即时通信TCP/UDPLinux文件传输二、需求分析局域网仿qq通信系统能实现即时通信,并且通讯采用TCP/UDP协议。Socket是基于TCP/IP协议之上的一个接口规范,它为应用层之间的通信提供了保障。Socket适用于客户/服务
2、器模式的网络应用程序设计,在使用面向连接模式时,使用TCP协议作为通信协议,为应用程序提供面向连接的服务。用Socket进行网络通信时,需要在客户端和服务器端分别创建一个Socket,服务器端创建成功以后在特定的端口上监听客户端的连接请求。如果有客户端的连接请求到来,则成功建立一个连接后,客户端和服务器端就可以互相进行通信了。但只能是和客户端进行点对点的通信,即服务器只允许有一个客户端的连接,如果有连接请求到达时,服务器端需要再创建一个新的Socket与客户端进行通信,而原来的那个Socket仍处于监听状态,等待新的客户的连接请求。三、概要设计程序必须建立一个Soc
3、ket,按照要求配置此Socket,也就是说程序要么将此Socket连接到远方的主机上,要么给此Socket指定一个本地协议端口。程序必须按要求通过此Socket发送和接收数据,程序必须关闭此Socket。客户端:——创建客户端套接字(CREATE);——开始数据传输(SEND、RECEIVE);13课程设计——关闭套接字(CLOSESOCKET);服务器端:——创建服务器端套接字(CREATE);——服务器端套接字进行信息绑定(BIND),并开始监听连接(LISTEN);——接受来自客户端的连接请求(ACCEPT),并创建接收进程;——开始数据传输(SEND、RE
4、CEIVE);——关闭套接字(CLOSESOCKET)。一、详细设计下面是实现TCP通信和UDP通信的流程TCP通信程序的逻辑框图13课程设计UDP通信程序的逻辑框图13课程设计一、源程序和运行结果清单#include#include#include#include#include#include#include#include//文件操作头文件#include#inc
5、ludevoidMenu(){printf("tt
6、================================================");printf("tt
7、================================================");printf("tt
8、欢迎进入系统");13课程设计printf("tt
9、================================================");printf("tt
10、1.UDP通信");printf("
11、tt
12、2.TCP通信");printf("tt
13、3.文件传输");printf("tt
14、4.exit");printf("tt
15、================================================");}void*recver(void*data){intfd1;//文件描述符structsockaddr_inaddr1;structsockaddr_inaddr_send1;//发送者地址对象socklen_tlen1;//socket_t类型的变量lenintr1;//结果charbuf1[200];//
16、1.socketfd1=socket(AF_INET,SOCK_DGRAM,0);/*AF是网络传输,so..是udp报文传输,0是自动比配*/if(fd1==-1)printf("socketerr:%m"),exit(-1);printf("Asocketok");//2.bindaddr1.sin_family=AF_INET;//全大写模式的是宏状态addr1.sin_port=htons(9999);inet_aton("127.0.0.1",&addr1.sin_addr);r1=bind(fd1,(structsockaddr*)&addr
此文档下载收益归作者所有