服务器端 #include stdioh#include stdlibh#include serverhint main startServer; return 0;
函数名:startServer
文件名:server.c
功能概要:启动服务器,监听客户端的连接请求并处理请求
参数: 无
返回值:无
详细说明:该函数会创建套接字、绑定套接字、监听套接字,并调用handleClientRequests函数处理客户端请求。在处理完所有请求后,会关闭套接字和数据库连接。
使用注意事项:无
函数名:createSocket
文件名:server.c
功能概要:创建套接字
参数:无
返回值:int型,表示创建的套接字的文件描述符
详细说明:该函数会调用socket函数创建套接字,如果创建失败则会打印错误信息并退出程序。
使用注意事项:无
函数名:bindSocket
文件名:server.c
功能概要:绑定套接字
参数: int型,表示要绑定的套接字的文件描述符 struct sockaddr_in型,表示服务器地址
返回值:无
详细说明:该函数会调用bind函数绑定套接字,如果绑定失败则会打印错误信息并关闭套接字。
使用注意事项:无
函数名:listenSocket
文件名:server.c
功能概要:监听套接字
参数: int型,表示要监听的套接字的文件描述符
返回值:无
详细说明:该函数会调用listen函数监听套接字,如果监听失败则会打印错误信息并关闭套接字。
使用注意事项:无
函数名:closeSocket
文件名:server.c
功能概要:关闭套接字
参数: int型,表示要关闭的套接字的文件描述符
返回值:无
详细说明:该函数会调用close函数关闭套接字,如果关闭失败则会打印错误信息。
使用注意事项:无
函数名:openDatabase
文件名:server.c
功能概要:打开数据库连接
参数:无
返回值:sqlite3指针,表示打开的数据库连接
详细说明:该函数会调用sqlite3_open函数打开数据库连接,如果打开失败则会打印错误信息并退出程序。
使用注意事项:无
函数名:closeDatabase
文件名:server.c
功能概要:关闭数据库连接
参数: sqlite3指针,表示要关闭的数据库连接
返回值:无
详细说明:该函数会调用sqlite3_close函数关闭数据库连接,如果关闭失败则会打印错误信息并退出程序。
使用注意事项:无
函数名:sig_handler
文件名:server.c
功能概要:信号处理函数
参数: int型,表示信号的编号
返回值:无
详细说明:该函数会在接收到SIGTSTP信号时打印服务器登出信息并退出程序。
使用注意事项:无
函数名:handleClientRequests
文件名:handle.c
功能概要:处理客户端请求
参数: ServerContext指针,表示服务器的上下文信息 int型,表示服务器的套接字的文件描述符
返回值:无
详细说明:该函数使用select函数监听套接字,当有客户端连接时调用handleClientRequest函数处理请求。处理完所有请求后,关闭客户端套接字。
使用注意事项:无
函数名:handleClientRequest
文件名:handle.c
功能概要:处理单个客户端请求
参数: ServerContext指针,表示服务器的上下文信息
返回值:无
详细说明:该函数先接收客户端发送的userid,然后根据userid从数据库中查询设备状态,生成建议并发送给客户端。最后关闭客户端连接。
使用注意事项:无
函数名:receiveUserId
文件名:handle.c
功能概要:接收客户端发送的userid
参数: int型,表示客户端套接字的文件描述符
返回值:int型,表示接收到的userid
详细说明:该函数调用recv函数接收客户端发送的userid,如果接收失败则打印错误信息并返回-1。
使用注意事项:无
函数名:prepareStatement
文件名:handle.c
功能概要:准备数据库查询语句
参数: sqlite3指针,表示数据库连接 int型,表示要查询的userid
返回值:sqlite3_stmt指针,表示准备好的查询语句
详细说明:该函数根据userid拼接查询语句,然后调用sqlite3_prepare_v2函数准备查询语句,如果准备失败则打印错误信息并返回NULL。
使用注意事项:无
函数名:initializeStatus
文件名:handle.c
功能概要:初始化设备状态
参数: Status指针,表示要初始化的设备状态
返回值:无
详细说明:该函数将设备状态的各个字段清零,并将uid设为0。
使用注意事项:无
函数名:updateAcStatus
文件名:handle.c
功能概要:更新空调设备状态
参数: Status指针,表示要更新的空调设备状态 int型,表示空调设备的uid const unsigned char指针,表示空调设备
原文地址: https://www.cveoy.top/t/topic/iFW9 著作权归作者所有。请勿转载和采集!