Linux聊天室(五)

111 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天

4 详细设计

4.1结构设计

本项目采用客户/服务器模型,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式,即客户向服务器发出服务请求,服务器接受到请求后,提供相应的服务。

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

1. 服务器端:套接字创建函数Socket(),端口绑定函数Bind(),套接口监听函数Listen(),

接受连接函数Accept(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。

2. 客户端:套接口创建函数 Socket(),套接口连接函数 Connect(),数据收发函数Read()

和Write(),以及套接口关闭函数Close()。

4.2通信设计

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

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

 

4.3服务器端模块设计

服务器端功能:

1. 等待客户端的连接

2. 向连接的客户发送登录成功信息

3. 向已进入聊天室的用户发送新用户登录的系统消息

4. 接受客户端发送的信息,发送到聊天室中的所有客户

详细流程图如下:

image.png

4.4客户端模块设计

客户端功能:

1. 输入用户名等信息进行注册

2. 连接到服务端

3. 在聊天室中发送消息,接收系统消息和聊天室中的其它客户端发送的消息

详细流程图如下:

image.png