700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux聊天室项目课程设计 网络编程课程设计报告--基于linux网络聊天室设计.docx...

linux聊天室项目课程设计 网络编程课程设计报告--基于linux网络聊天室设计.docx...

时间:2023-11-30 01:47:08

相关推荐

linux聊天室项目课程设计 网络编程课程设计报告--基于linux网络聊天室设计.docx...

word文档 可自由复制编辑

网络编程课程设计报告

题 目:

基于linux网络聊天室设计

姓 名:

学 院:

信息科学技术学院

专 业:

网络工程

班 级:

网络112班

学 号:

指导教师:

职称: 副教授

年 6 月 22 日

基于linux网络聊天室设计

摘要:本课程设计是在Linux环境下基于Socket进行开发的。系统服务器端和客户端组成。服务端程序通过共享存储区存储聊天数据,并发送给每个连接的客户端。通过多路复用的子进程实现服务端与多个客户端之间的数据发送与接收。可以在单机上开辟两个窗口分别运行客户、服务器的程序。本方案经gcc调试器调试成功,可以在机网络聊天中使用。

关键词:网络聊天;linux ;socket

1.linux中socket的基本应用:

1.1服务端建立套接字的大致步骤:

(1)建立socket。

(2)bindPort 绑定特定的端口。

(3)listen 监听特定的端口。

(4)accept,当有客户端连接服务器端口时,accept接收信息,并返回新的套接字描述符,提供给操作

(5)根据实际需求,write,read,send,recv等操作

(6)关闭套接字。

1.2客户端大致步骤:

(1)创建socket.

(2)根据服务器地址,connect连接到特定服务器。

(3)write,read等读写操作。

(4)关闭套接字。

1.3 客户/服务器模型

应用程序之间为了能顺利地进行通信,一方通常需要处于守候状态,等待另一方请求的到来。在分布式计算中,一个应用程序被动地等待,而另一个应用程序通过请求启动通信的模式就是客户/服务器模式。 客户/服务器模型的典型运行过程包括五个主要步骤:

(1)服务器监听相应窗口的输入。

(2)客户机发出请求。

(3)服务器接收到此请求。

(4)服务器处理此请求,并将结果返回给客户机。

(5)重复上述过程,直至完成一次会话过程任务。

2.系统结构设计

2.1 系统结构设计

本系统采用客户/服务器模型,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是客户端/服务器模式的TCP/IP。在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递[4]。所以多个客户端之间的通信就变为了客户端与服务端的通信。

服务器端和客户端的主要组成如下:

服务器端:套接字创建函数Socket(),端口绑定函数Bind(),套接口监听函数Listen(),接受连接函数Accept(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。

客户端:套接口创建函数Socket(),套接口连接函数Connect(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。

2.2通信设计

首先运行服务器端程序,通过Socket()函数会建立一个套接字,然后通过Bind()函数绑定一个端口,然后调用Listen()在套接字指定的端口上开始倾听,利用Accept()从完全建立连接的队列中接受一个连接,连接获得后使用Read()和Write()函数进行通信。通信结束后调用Close()关闭套接字描述符。

运行客户端的程序,调用Socket()函数建立一个套接字,使用Connect()函数与服务器端进行连接,连接完成后,使用Write()和Read()与服务器端进行通信,通信结束后调用close()关闭套接字描述符。

3.1系统调用相关函数

(1)Socket()

作用:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。