C/S架构的简单文件传输系统的实现
- 开始错误理解为服务器端向客户端发送文件名,之后客户端响应到该文件名并且将该文件发送至服务器端。其中客户端响应服务器发来的文件名时用了strcmp字符串比较函数来确认服务器所发送的文件名在客户端是否存在。
- 理解正确后,在实现数据的发送接收时,起初用到的是c++中的流式输入输出文件(c语言的文件掌握不熟练),但在实现mp3数据传输时未能达到预期效果,然后学习了open,read,write这样的函数,并且去运用,完成了数据流的读出和写入。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#ifndef __unp_h
#define __unp_h #include < sys/stat.h> //c++ headfile #ifndef HAVE_BZERO #define MAXLINE 4096 #endif |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#include "unp.h" int main(int argc, char **argv) sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); bzero(&servaddr, sizeof(servaddr)); if(bind(sockfd, (SA *)&servaddr, sizeof(servaddr)) < 0) if(listen(sockfd, LISTENLINE) < 0) int connfd = accept(sockfd, (SA *)NULL, NULL); //------------------send mp3 name---------------------- |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#include "unp.h" int main(int argc, char **argv) if(argc != 3) //create socket //init servaddr int connfd = connect(sockfd, (SA *)&servaddr, sizeof(servaddr)); |
2.启动客户端,连接ip为127.0.0.1 连接端口为9500
3.服务器发送要发送的文件的名字
4.随即发送了服务器端的music.mp3文件
5.客户端响应服务器的发送,并且收到文件
6.客户端收到的文件为NEWmusic.mp3
7.该新文件的内容如图,与music.mp3一样
C/S架构的简单文件传输系统的实现相关推荐
- python开发cs软件_python cs架构实现简单文件传输
本文为大家分享了python cs架构实现简单文件的传输代码,供大家参考,具体内容如下 要实现简单文件的传输我们必须考虑这些问题: 1.什么是c/s架构? 顾名思义,就是客户端端/服务器架构.不同的人 ...
- 基于socket的简单文件传输系统
[实验目的及要求] 在 Uinx/Linux/Windows 环境下通过 socket 方式实现一个基于 Client/Server 文件传输程序. [实验原理和步骤] 1. 确定传输模式:通过 so ...
- 创建带有关联的 XML 架构的 XML 文件 从 XML 文件创建 XML 架构
一.创建带有关联的XML 架构的XML 文件 1.创建新的 Windows 应用程序项目 首先需要在 Visual Basic 或 Visual C# 中创建新的 Windows 应用程序.创建一个新 ...
- 简单的Linux操作命令,Linux系统简单文件操作命令
项目 内容 作业课程归属 学号-姓名 17041419-刘金林 作业学习目标 1)学习Linux的基本操作命令:2)在终端上运用命令行去实现基本文件操作 1.查看当前目录 问:提示符$与#的区别? 答 ...
- 简单文件传输协议TFTP分析还原
" 介绍TFTP协议及传输内容的还原." TFTP,全称为Trivial File Transfer Protocol,即简单文件传输协议,是一个用来在客户端与服务器之间进行简单文 ...
- 教你如何运用python实现简单文件读写函数
这篇文章主要为大家详细介绍了python实现简单文件读写函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 python作为脚本性语言,加上它的简便易用性.会经常当作脚 ...
- 让架构更简单,QCon上海2016热点前瞻
架构设计是软件设计过程中最重要的部分之一,是降低成本.改进质量.按时和按需交付产品的关键因素,架构设计的优劣会直接影响到目标系统的各个质量属性.对于软件开发而言,架构设计能保证系统质量,可以全过程指导 ...
- linux写入系统状态到文件夹,实验二 Linux系统简单文件操作命令
*实验二** Linux系统简单文件操作命令 项目内容 这个作业属于哪个课程 这个作业的要求在哪里 学号-姓名 17041518-孙小文 作业学习目标 学习在Linux系统终端下进行命令行操作 :掌握 ...
- 简单文件加密解密系统(c++)
简单文件加密解密系统(c++) 一.原理 二.实现思路 三.c++代码 四.运行结果 一.原理 为了实现加解密,首先需要一个码本文件.一个基本的码本文件包含26个字母,即a~z打乱顺序的结果,比如 ...
最新文章
- docker查看现有容器_如何使用Docker将现有应用程序推送到容器中
- python ftp文件夹文件递归上传推送
- 淮阴工学院计算机期末考选择题题库,淮阴工学院计算机导论题库.doc
- tf.reduce_sum()_tf.reduce_mean()_tf.reduce_max()
- ubuntu 安装 spconv
- 最简单jquery轮播图效果
- JEPaas代码((列表,表单)确认入库按钮
- 什么是 ABAP Field Symbol
- 铁血规则:事件预订与取消预订
- Node.js读取mongoDB并输出json数据
- [jQuery基础] jQuery动效案例(二) -- 图标特效、无限循环滚动(简易轮播图)
- ftp服务器通常提供文件上传和,基于FTPClient的文件上传至Nginx服务器
- openlayers2 开发如何判断一个marker所在的点是否在一个多边形内部
- shiny app制作基本思路
- 判断当前打开的是手机还是pc浏览器还是微信浏览器
- java敏捷开发的落地与实施_20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告...
- iReport制作EXCEL、PDF或者HTML文件
- 干支纪年法简便算法_初中阶段常用的四种历史纪年法
- 字符区位码 java_用Java取得汉字的区位码
- 数字化时代,更多的徐玉玉需要保护