Linux 下基于 Socket 文件传送程序设计一、设计目的 1. 掌握 Linux 网络开发知识。 2. 掌握课题的设计步骤和方法。 3. 提高 Linux 下c 程序设计的能力。 4. 掌握应用程序开发中的需求分析与方法。二、设计分析本设计是在 Linux 环境下基于 Socket 进行开发的。系统有一个服务器端和两个客户端组成。先是运行服务器等待两个客户端的连接请求, 客户端 1 和客户端 2 分别登入到服务器上, 登入成功后服务器会分别给客服端发送登陆成功提示。此时客户端 1 便可将指定文件里德内容打开, 发送到服务器上, 服务器接收后再将之转发给客户端 2, 接着客户端 2 新建一个文件, 并将接收到的由服务器转发的内容写入到该文件中, 由此便实现了不同客户端之间的文件传送。三、系统设计 1. 系统功能 1 )开启服务器; 2 )两个客户端登入服务器; 3 )客户端 1 打开文件并传给服务器; 4 )服务器将接收到的内容传给客户端 2; 5 )客户端 2 新建文件并保持收到的内容。 2. 相关文件 是服务器源代码, 是客户端 1 源代码, 是客户端 2 源代码, fuwuqi 是服务器执行文件, kehuduan1 是客户端 1 执行文件, kehuduan2 是客户端 2 执行文件, 是所要传送的文件, rec 是接收文件所在的文件夹。四、调试结果服务器客户端 1 客户端 2 五、设计总结经过本次程序设计, 提高了我在 Linux 下用 C 语言编写程序的能力, 掌握了网络 Socke t 编程,了解了有关网络方面的知识。本来是想设计双方都可以发送接收的,奈何能力不足, 错误多多,暂时就只能先实现简单的一方发送一方接收,接下来会思考下如何进一步改善。附录 1. #include<sys/> #include<sys/> #include<> #include<> #include<> #include<> #include<> #inet/> #include<sys/> #include<> #define SERVPORT 10000 // 端口号#define BACKLOG 10 // 最大请求数#define MAX_CONNECTED_NC 10 #define MAXDATASIZE 64 // 缓冲区长度#define FILE_NAME_MAX_SIZE 512 int main() { struct sockaddr_in fuwuqi_sockaddr,kehuduan1_sockaddr,kehuduan2_sockaddr; int sin_size,shoudaozijieshu; int fuwuqi_fd,kehuduan1_fd,kehuduan2_fd; int wenjian_open,wenjian_write; char buf[MAXDATASIZE],temp[MAXDATASIZE],*IP1,*IP2; char *filename; if((fuwuq
Linux下基于Socket文件传送程序设计.doc 来自淘豆网m.daumloan.com转载请标明出处.