# 基于Linux的TCP网络聊天室 **Repository Path**: mr-chen2003/project_2 ## Basic Information - **Project Name**: 基于Linux的TCP网络聊天室 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2024-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目名称: 基于Linux的TCP网络聊天室 项目负责人: Chen 团队成员: Chen ### 设计目标: 旨在为用户提供一个基于Linux平台的高效、安全且友好的在线交流环境。通过实现多线程、多用户并发聊天,支持群聊、私聊功能,并采用先进加密技术保障通信安全。 ### 功能描述: 服务器: 1.支持多线程,支持多客户端同时连接。 2.支持转发群聊、私聊消息功能。 3.获取客户端请求,发送对应信息,如:在线人员、天气、时间。 4.终端界面人机交互 客户端: 1.lvgl 图形库显示界面。 2.发送一系列请求,如:在线人员、天气、时间,获取到服务器返回信息并显示。 3.支持群聊、私聊功能。 4.开发板触摸屏人机交互。 ### 设计方案: 软件设计:基于Ubuntu 24.04和GEC6818平台,采用C语言编程、系统编程(多线程、线程池)、网络编程(socket编程、cJSON)、lvgl图形库,结合Linux环境进行开发。 硬件设计:选用Cortex-A53 S5P6818处理器,配备7寸LCD电容触摸屏,支持TCP/IP通信。 ## 使用说明书 ### 硬件要求 GEC6818开发板 ### 编译命令 客户端(显示屏显示):在主目录下输入:make 客户端(终端显示):在client目录下输入:gcc -o client *.c -lpthread 服务端:在server目录下输入:make ### 运行命令 客户端(显示屏显示):在主目录下输入:./project 客户端(终端显示):在client目录下输入:./client 服务端:在server目录下输入:./server_demo ### 环境搭建 使用VScode进行C语言代码编写 在Linux终端使用arm-linux-gcc工具进行C语言代码编译 串口以及网络端口连接开发板后运行 ### 项目目录 inc文件夹:存放引用的头文件 lib文件夹:存放引用的库文件 res文件夹:存放图片素材 src文件夹:存放.c代码文件 server文件夹:存放服务端代码 client文件夹:存放客户端(终端显示)代码 lvgl文件夹:存放lvgl图形库代码 lvgl_driver文件夹:存放lvgl驱动代码 ## 功能操作 #### 1.客户端(终端显示): 连接服务器成功后,显示功能选择界面,有5个选项:1.私聊;2.群聊;3.天气;4.在线;5.退出。 1.私聊:选择私聊对象,输入私聊内容,发送。(输入exit退出私聊) 2.群聊:输入群聊内容,发送。(输入exit退出群聊) 3.天气:显示当前城市天气情况。 4.在线:显示当前在线人员。 5.退出:退出客户端。 如果连接失败,则直接退出程序。输入错误,会显示错误信息并重新显示功能选择界面。服务器端关闭,客户端会显示错误信息并退出。 #### 2.客户端(显示屏显示): 运行程序后,显示聊天界面,左边工具栏有3个按钮,左上角是程序返回(退出)按钮,点击退出当前页面(暂时只有一个界面,所以直接退出整个程序)。 退出按钮下面是连接服务器按钮,点击连接服务器,连接失败会有提示框显示错误信息,关闭提示框后可以再次点击连接。 连接服务器成功后,会有提示框显示成功信息,关闭提示框后可以选择功能。并且发送时间获取请求给服务器,获取到返回信息后显示并开启定时器每秒更新时间。 连接服务器按钮下面是天气获取按钮,点击获取天气,获取到返回信息后显示在右上角。 旁边是聊天列表,点击聊天列表字体区域可刷新聊天列表,显示在线人员私聊选项和群聊选项。如果没有在线人员会出现提示框。 点击聊天列表中的"GROUP_CHAT"项,打开聊天窗口,显示群聊界面。点击其他项,打开聊天窗口,显示私聊界面。 聊天窗口:上方显示对应聊天选项、中间显示聊天内容、下方显示输入框。点击输入框,显示键盘。 键盘为26字母键盘,点击键盘上的字母、数字或符号,输入框显示对应内容,点击键盘上的退格键,输入框删除最后一个字母,点击回车键,发送信息。 #### 3.服务端(终端显示): 运行程序后,显示服务器功能选择界面,有两个选项:1.显示在线客户端列表;2.关闭服务器。 1.显示在线客户端列表:显示当前在线客户端列表。 2.关闭服务器:释放服务器资源和线程池资源后,关闭服务器。 当客户端连接服务器成功后,服务端会显示客户端连接成功信息,并且将客户端信息添加到在线列表中。 当客户端断开连接后,服务端会显示客户端断开连接信息,并且将客户端信息从在线列表中删除。 当客户端发送聊天消息后,服务器会转发给其他或对应客户端。 当客户端发送请求时,服务器会根据请求类型进行处理,返回对应信息。