教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

基于Linux点对点聊天文件传输系统(6)

来源:网络收集 时间:2026-07-17
导读: 内蒙古工业大学毕业设计说明书 创建多线程是否有请求接入是接受请求建立连接绑定套接字到端口开始服务器初始化监听连接请求图3-4 服务器端初始化模块程序流程图 客户端初始化后同服务器端一样,要创建一个套接字对象

内蒙古工业大学毕业设计说明书

创建多线程是否有请求接入是接受请求建立连接绑定套接字到端口开始服务器初始化监听连接请求图3-4 服务器端初始化模块程序流程图

客户端初始化后同服务器端一样,要创建一个套接字对象并填充地址结构,绑定到8080端口,向服务器端发出连接请求,并显示连接是否成功。

请求连接主要代码如下:

//判断请求连接是否成功,显示相应信息。

if(connect(server_fd,(struct sockaddr*)&server_addr,len)==-1)

{ } else { }

gtk_text_buffer_get_end_iter(buffer2,&iter);

gtk_text_buffer_insert(buffer2,&iter,\成功与服务器连接......\\n\isconnected= TRUE; return TRUE;

gtk_text_buffer_get_end_iter(buffer2,&iter);

gtk_text_buffer_insert(buffer2,&iter,\连接服务器时出错!\\n\return FALSE;

客户端初始化模块程序流程如图3-5所示。

16

内蒙古工业大学毕业设计说明书

连接是否成功是显示连接成功返回失败信息请求连接创建套接字对象开始客户端初始化否图3-5 客户端初始化模块程序流程图

3.3 发送模块设计

发送模块由发送消息和发送文件两部分构成。其中发送消息部分可以通过在回调函数内使用sprintf()、write()等函数,实现信息的发送和显示。发送按钮的回调函数被调用时首先判断是要执行服务器端,还是客户端代码。服务器端与客户端发送信息模块代码,主要区别在于发送时所使用的套接字对象不同,服务器端使用的Socket对象为client_fd,客户端使用的Socket对象为server_fd。清除按钮能够删除所显示的信息。

发送文件部分使用选择文件按钮调用选择文件窗口,实现文件查找,选择想要发送的文件,将选择要发送文件的路径和文件名显示在发送文件对话框中。发送按钮调用文件发送函数将选择的文件发送到接收方。文件发送函数同信息发送函数一样,要判断选择执行服务器端和客户端发送代码。发送模块运行过程如图3-6所示。 发送模块 发送消息发送文件 是否运行服务器端是否运行服务器端 服务器端模块使用客户端模块使用服务器端模块使用客户端模块使用client_fd套接字对象server_fd套接字对象client_fd套接字对象server_fd套接字对象 发送发送发送发送 17

内蒙古工业大学毕业设计说明书

图3-6 发送模块流程图

3.4 接收模块设计

接收模块使用get_message()函数进行接收。当get_message()运行时首先会判断是服务器端,还是客户端的调用,根据判断结果执行不同的代码段。在接收到信息后要判断发送方想要传送的是文件还是消息,再次选择执行不同的代码段。

接收文件需要调用filereav()函数,filereav()执行过程如下首先接收文件名,用接收到的文件名命名创建一个文件,将接收缓存buffer中的内容写入创建的文件中,最后关闭文件。

发送模块运行过程如下图3-7所示。

图3-7 接收模块流程图

调用filereav()接收文件调用get_message()接收信息调用filereav()接收文件调用get_message()接收信息是是否接收文件否是是否接收文件否是是否运行服务器端否get_message()函数运行服务器端运行客户端3.5 线程处理模块

基于Linux点对点聊天文件传输系统(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615650.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)