vb聊天室实验报告

vb聊天室实验报告

ID:799220

大小:3.15 MB

页数:19页

时间:2017-09-05

vb聊天室实验报告_第1页
vb聊天室实验报告_第2页
vb聊天室实验报告_第3页
vb聊天室实验报告_第4页
vb聊天室实验报告_第5页
资源描述:

《vb聊天室实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CENTRALSOUTHUNIVERSITY计算机网络课程设计报告学生姓名:班级:学号:指导教师:设计时间:目录第一章设计目的、任务1.1设计目的1.2设计的任务第二章系统分析设计2.1系统流程分析2.2系统功能需求分析2.3系统运行要求2.4系统数据要求第三章系统实现3.1系统界面设计3.2系统功能模块设计第四章体会和建议第一章设计目的、任务1.1设计目的1.掌握Linux下的c语言编程。2.熟悉Linux下网络编程流程,巩固、应用这学期学过的计算机网络知识。3.掌握socket编程方法。1.2设计的任务1.利用

2、一种编程语言和通信编程Socket接口编写一个简单的聊天室。2.使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。3.聊天室基本功能:(1).基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;(2).进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等第二章系统分析设计2.1系统流程分析客户端与服务器通信过程整体过程如下图:使用TCP套接字编程实现基于TCP/IP协议的面向连接的通信,分为服务器端,客户端。*客户/服务器模型:在客户/服务器模型中,多个

3、祥伙同心得计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递。所以多个客户端之间的通信就变成了客户端与服务端的通信。采用客户/服务器模型进行网络聊天需要分别编写服务器端和客户端的程序,服务器和客户端之间相互通信的同步关系和各自的程序流程如下图:客户/服务器模型各自流程(1)服务端:a.初始化服务端socket,指定端口。b.将创建的套接字绑定到指定的地址结构。c.listen()函数设置套接字为监听模式,使服务器进入被动打开的状态。d.接受客户端的连接请求,建立连接。e.接收、应答客户端的数据请求

4、,终止连接。(2)客户端:a.使用socket()函数创建套接字。b.调用connect()函数建立一个与TCP服务器的连接。c.发送数据请求,接收服务器的数据应答。d.终止连接。2.2系统功能需求分析(1)服务器端a.接收客户端连接,系统创建套接字并绑定端口,设置为监听模式。b.每监听到一个客户端请求,就产生一个子进程服务客户端。c.接收消息并转发消息。(2)客户端a.连接服务器功能:在连接服务器是要知道服务器的IP地址以及服务器绑定的端口,所以用户要输入服务器的IP地址,根据已知的IP地址连接服务器,若连接成功

5、,则显示欢迎用户界面。b.发送聊天信息:可以选择群聊和私聊,如果是群聊,则没有限制,正常输入信息;如果是私聊,则要输入要私聊对象的用户名,对方才可以接受到,其他用户端也会收到,但不会显示到屏幕上。c.接收信息:由于我采用的是服务器见到信息就转发给所有客户端,所以默认是群聊,如果是私聊,接收方会判断收到的信息的标识符,是否该显示出来。2.3系统运行要求操作系统:ubuntu10.10编程语言:linux下的c语言编辑工具:vi编辑器编译工具:gcc调试工具:gdb2.4系统数据要求客户端需要首先在终端下通过ifcon

6、fig命令获得服务器IP地址。并且需要输入自己的用户名。第三章系统实现3.1系统界面设计由于我是在linux下用c语言编写程序,暂时还没有学到用GDK开发图形界面。我做的是简易聊天室,不需要注册,登陆,直接打开终端,连接服务器就可以发送消息,没有界面对聊天没有太大影响,只不过没有那么直观,美观。1.2系统功能模块设计采用多线程并发服务客户端,提高服务效率。父进程没检测到有客户端连接请求,调用fork()函数产生一个子进程服务客户端。(1)以下是上网查找资料,在socket编程中要用到的主要数据结构及函数:Intso

7、cket(intfamily,inttype,intprotocol);family指定协议簇,IPv4下则为AF_INET。type指定套接口类型:SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW。(流套接字,数据报套接字,有序分组套接字,原始套接字)protocol:IPPROTO_TCP,IPPROTO_UDP,IPPROTO_SCTP,分别是TCP传输协议,UDP传输协议,SCTP传输协议;函数返回一个非负整数值,类似于文件描述符(linux内核知识),称之为套接

8、口描述字,简称套接字。字节序函数:#includeuint16_thtons(uint16_thost16bitvalue);uint32_thtonl(uint32_thost32bitvalue);返回:网络字节序值.connect函数#includeintconnect(intsockfd,consts

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。