Linux C 网络编程 仿照网盘的功能 代码:
gitbub 代码,欢迎下载测试

使用概述

启动
server-> make;./server ../conf/serverconf.ini client-> make; ./client 127.0.0.1 2000
默认 server ip为主机ip,port=2000,子进程个数=5

server端
进程池响应client 登录、注册、下载、上传、断点下载、日志记录功能
client端
将对应命令的数据包进行发送,包括退出处理机制

登录、注册

注册: client salt盐值随机生成6<script type="math/tex" id="MathJax-Element-1">6</script>…….格式,crypt SHA-512加密,即可得到密文密码,tcp发送给server保存到mysql中
登录: server 先发送已保存的salt给client,client将加密后的密文密码发送给server,server与mysql数据进行比对
server、client建立连接后,处于while 1,只有login成功后break;**

下载、上传

mmap映射文件,得到映射区指针,memcpy到数据包中不断发送

断点下载

本地存在同名文件,将已有大小发送给server,server mmap映射时偏移对应大小位置即可

断点下载

登录用户、登录时间、命令操作的信息记录保存到本地文件

Linux C 网络编程 仿照网盘的功能相关推荐

  1. Socket网络编程--小小网盘程序(5)

    http://www.cnblogs.com/wunaozai/p/3893469.html 各位好呀!这一小节应该就是这个小小网盘程序的最后一小节了,这一节将实现最后的三个功能,即列出用户在服务器中 ...

  2. Socket网络编程--小小网盘程序(1)

    http://www.cnblogs.com/wunaozai/p/3886588.html 这个系列是准备讲基于Linux Socket进行文件传输.简单的文件传输就是客户端可以上传文件,可以从服务 ...

  3. Socket网络编程--小小网盘程序(4)

    在这一小节中实现了文件的下载,具体的思路是根据用户的uid和用户提供的文件名filename联合两张表,取得md5唯一标识符,然后操作这个标识符对应的文件发送给客户端. 实现下载的小小网盘程序 cli ...

  4. Socket网络编程--小小网盘程序(3)

    http://www.cnblogs.com/wunaozai/p/3891062.html 接上一小节,这次增加另外的两张表,用于记录用户是保存那些文件.增加传上来的文件的文件指纹,使用MD5表示. ...

  5. Socket网络编程--小小网盘程序(2)

    http://www.cnblogs.com/wunaozai/p/3887728.html 这一节将不会介绍太多的技术的问题,这节主要是搭建一个小小的框架,为了方便接下来的继续编写扩展程序.本次会在 ...

  6. linux和网络编程笔记

    第一部分.章节目录 3.4.1.程序的开始和结束 3.4.2.进程环境 3.4.3.进程的正式引入 3.4.4.fork创建子进程 3.4.5.父子进程对文件的操作 3.4.6.进程的诞生和消亡 3. ...

  7. 基于Linux的网络编程——网络聊天程序

    网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法. 结合任务需求设计该程序,程序采用 ...

  8. Linux下网络编程

    Linux下网络编程初步 Linux以其源代码公开闻名于世,并以其稳定性和可靠性雄霸操作系统领域,在网络应用技术方面使用得更加广泛.很久以来它就是Windows的重要对手之一.随着网络时代的来临,Li ...

  9. Linux原始网络编程,Linux操作系统网络编程 原始套接字 (1)

    Linux操作系统网络编程--原始套接字 (1) http://soft.zdnet.com.cn/software_zone/2007/1020/568223.shtml 我们在前面已经学习过了网络 ...

最新文章

  1. 后序遍历的非递归算法python_二叉树后序遍历(递归与非递归)算法C语言实现...
  2. 给ztree节点赋值
  3. codeforces629C Famil Door and Brackets (dp)
  4. 字符串(后缀自动机):COGS 2399. 循环同构
  5. [洛谷P3381]【模板】最小费用最大流
  6. 从 Java 到 Kotlin,再从 Kotlin 回归 Java
  7. Kubernetes基础:使用rollout对Deployment进行控制
  8. pytorch断点续传
  9. Windows 10 喇叭红叉 重装驱动无效 点击喇叭显示无插座信息
  10. 修改计算机桌面壁纸影响计算机考试吗,计算机考试
  11. Spring Security Oauth2:授权模式、简单模式 、密码模式 和 客户端模式
  12. OracleOCP认证 之 Linux基础
  13. 转自Master HaKu 的C#调用C++写的Dll时的运行时错误解决
  14. 在一个老外微信PM的眼中,中国移动App UI那些事儿
  15. 033 Rust死灵书之重构Vec
  16. VBScriptVBS(五)VBScript中的类class详解
  17. OpenWrt开发者沙龙:立方体CEO何铮演讲
  18. centos7 扩容完成后执行 xfs_growfs /dev/centos/root
  19. 【libuv高效编程】libuv学习超详细教程2——libuv框架初窥
  20. 数据挖掘,机器学习,统计学习的区别与联系

热门文章

  1. 微软Azure组面试(部分)
  2. 十年之痛解读日本房地产泡沫
  3. 爬取某视频网站电影,仅参考学习
  4. 1月书单 2月新书预告 | 百万册畅销书全新续作来啦
  5. Windows NT
  6. 被拿走的雨伞——我想到的
  7. 平面设计证书怎么考,平面设计证书有用吗:夏雨老师
  8. WFP(三)——编译、部署驱动文件*.sys——微软msnmntr项目
  9. java 导出txt_【Java】导入导出TXT文件
  10. 读《纳瓦尔宝典》感想