linux实习-网络聊天室的设计与实现-实习论文

linux实习-网络聊天室的设计与实现-实习论文

ID:9380441

大小:188.64 KB

页数:15页

时间:2018-04-29

linux实习-网络聊天室的设计与实现-实习论文_第1页
linux实习-网络聊天室的设计与实现-实习论文_第2页
linux实习-网络聊天室的设计与实现-实习论文_第3页
linux实习-网络聊天室的设计与实现-实习论文_第4页
linux实习-网络聊天室的设计与实现-实习论文_第5页
资源描述:

《linux实习-网络聊天室的设计与实现-实习论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、题目:网络聊天室的设计与实现学号姓名专业班级指导教师实践日期目录一、综合训练目的与要求113二、综合训练任务1(1)服务器端实现的功能1(2)客户端实现的功能1三、总体设计1(1)系统结构设计1(2)通信设计2四、详细设计说明2(1)系统调用的相关函数2(2)通信连接实现说明3(3)额外功能实现说明4五、调试与测试4六、实习日志6七、实习总结7八、附录:核心代码清单713一、综合训练目的与要求目的:需要提供客户端和服务器,所有用户通过客户端连接服务器进行注册登录后才能进行聊天,进入聊天室有功能选择,用户可以选择群

2、聊功能,或者可以看所有上线用户,或者查看帮助菜单,每次消息发送都带有系统时间要求:任何用户通过客户端注册后登录到服务器进行聊天,服务器需要为守护进程。二、综合训练任务(1)服务器端实现的功能①能够正确并且成功开启服务器,服务器为守护进程②监听相应的客户端端口,等待客户端用户的连接③能建立与客户端用户请求的连接④接收客户端发来的注册请求消息,能在服务器端进行注册信息保存⑤接受用户的登录请求信息,能在服务器检验验证用户的登录信息,信息正确的用户可以连接到服务器进行操作,并能够在客户端显示当前的用户上线⑤当用户请求群聊

3、时,服务器可以将客户端发过来的信息传给所有在线用户⑥当用户请求查看当前在线用户时,服务器正确反馈给客户端在线用户⑦客户端请求下线时,提示当前用户下线,服务器将要关闭时提示客户端及时关闭(2)客户端实现的功能①能够正确启动成功客户端并发出连接请求②能够向服务器发送注册请求,输入用户名和密码保存到服务器③能够向服务器发送登录请求,服务器具有验证系统,正确的用户名和密码可以连接服务器,登录聊天室。聊天室,中发送信息,并且所有用户都能收到④可以向服务器发出请求群聊的请求,向所有在线用户发送消息⑤可以向服务器发送查看当前在

4、线用户的请求,获得当前在线用户的信息⑥发送消息的实时记录,发送消息可以考到当前系统的时间⑦能够断开与服务器的连接,退出聊天室三、总体设计(1)系统结构设计本系统采用客户/服务器模型,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较

5、少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是客户端/服务器模式的TCP/IP。13在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递[4]。所以多个客户端之间的通信就变为了客户端与服务端的通信。本聊天室系统采用了客户端/服务器形式,即客户端向服务器发送连接请求,服务器收到请求后,提供给客户端相应的服务。服务器主要

6、是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户聊天时,也要记录下客户的聊天时间,已备查当前时间。当然,服务器还有自己的动态数据处理。客户状态分为在线客户和非在线客户,我采用结构体存储链接客户信息,以链表来记录连接客户。当客户一连接服务器时,就给客户一个ID,也就是相当于注册信息,同时并发服务器一直在为连接用户创建线程。系统的总体设计是服务器端和客户端,组成如下:服务器端:套接字创建函数socket(),端口绑定函数bind(),初始化端口通用指针类型structsockaddr*,套接口监

7、听函数listen(),接受连接函数accept(),数据收发函数read()和write(),以及套接口关闭函数close()。客户端:套接口创建函数socket(),套接口连接函数connect(),数据收发函数read()和write(),以及套接口关闭函数close()。(2)通信设计首先运行服务器,通过socket()函数建立一个套接字,利用sockaddr保存,然后通过bind()函数绑定一个网络IP和端口,接着调用listen()是socket处于被动的监听模式,并且为该socket建立一个输入数据

8、队列将到达的服务保存在此队列中,然后响应客户请求,用函数accept函数生成一个新的套接口描述符,让服务器接收客户的连接请求,连接成功后使用read()和write()函数进行客户端之间的交互。通信结束后调用close()关闭套接字描述符,停止在该socket上的任何数据操作。运行客户端程序,利用socket()函数建立socket,同时为socket数据结构分配存储空间

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

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

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