udp和tcp特点 实现文件上传
本周课程安排:
网络编程结束
并发网络开头
进程
线程
IO模型
上周内容回顾:
1.osi七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理连接层
也有人把他们归纳为五层:
应用层,
传输层,
网络层,
数据链路层,
物理连接层
以太网协议:
1.规定电信号的分组方式
2.每台计算机都必须又一块网卡,网卡上面刻有12位的16禁止编号
前6位 厂商地址
后6位 流水线号
我们把这个编号称之为mac地址
基于以太网协议通信:通信基本靠吼,不能跨局域网传输
弊端:广播风暴
ip协议:
规定了任何一台接入互联网的计算机都必须又一个ip地址
版本:ipv4 ipv6
地址特点:点分十进制
0.0.0.0~255.255.255.255
作用:能够跨局域网传输,能够唯一标识全世界独一无二的计算机
端口port:
唯一标识一台计算机上的某个基于网络通信的应用软件
0~65535
0~1024操作系统自己分配
1024~8000 常用的应用程序占用
Mysql:3306
Redis:6379
Flask:5000
Django:8000
ip+port:唯一标识全世界独一无二的一台计算机上的某一个基于网络通信的应用软件
arp协议:根据IP地址解析mac地址
Tcp(可靠协议,学名流式协议)
三次握手
四次挥手
可靠协议的原因:必须要收到消息才会在内存中删除
流式协议
粘包问题的产生:
1.接收方:
我不知道我要接收数据的总长度
2.发送方:
由于Tcp协议的内部优化算法negle
1.会将数据量比较小的,并且时间间隔比较短的数据一次性打包发送
解决方案:
发送方:1.自定义字典 2.字典序列化 3.制作报头 4.发送报头 5.发送序列化的字典 6.发送真实内容
接收方:1.接收报头 2.解析报头,获取字典长度(1,先收序列化的字典,然后反序列化) 3.文件内容的循环接收

Udp
数据报协议
没有双向通道的
1.udp协议不存在粘包问题
2.客户端可以发空
3.udp可以实现并发的效果
4.服务端不存在也不影响客户端朝服务端发送数据

区别tcp和udp
tcp:类似于打电话
udp:类似于发短信
可靠原因:
不可靠原因:
SocketServer模块
1.能够实现并发效果
并发:看起来像同时运行就能称之为并发
2.udp在使用的时候,多个客户端要有一些IO(等待用户输入,计算机没在工作)操作,不然容易卡死


并发编程
操作系统发展史
多道技术:
1.空间上的复用(多个程序公用一套硬件设备,他是多道技术实现时间上的复用的基础,不然还要去硬盘读数据)
#多个程序公用一台计算机硬件
多个程序公用一套硬件设备,他是多道技术实现时间上的复用的基础,不然还要去硬盘读数据
2.时间上的复用(单个CPU的电脑上启用多个程序,CPU快速切换,给人的感觉是同时运行)
CPU两种情况下才会切换:(先保存当前程序的运行状态)
--一个任务占用CPU时间过长或被操作系统强行夺走CPU的执行权限(比起串行效率反而降低)
--一个任务执行过程中遇到的io操作,也会被操作系统强行夺走CPU的执行权限(比起串行效率提高)
并发:看起来像同时运行就能称之为并发
并行:同时运行(同一时间同时运行)
补充:单核计算机不可能实现并行!
udp和tcp特点 实现文件上传的更多相关文章
- 用c++开发基于tcp协议的文件上传功能
用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学 ...
- java TCP并发实现文件上传---转载(PS:适合java1.6之前)
/** 客户端 1.服务端点 2.读取客户端已有的文件数据 3.通过socket输出流发给服务端 4.读取服务端反馈信息 5.关闭 **/ import java.io.*; import java. ...
- TCP通信的文件上传案例
- 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)
1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...
- NetworkComms 文件上传下载和客户端自动升级(非开源)
演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...
- TCP大文件上传与UDP协议
一.UCP大文件上传(解决粘包问题) ①客户端 import socket, os, json, struct client = socket.socket() client.connect(('12 ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- QT TCP文件上传服务器
利用QT做为client端,纯C语言做为server端,利用tcp协议,实现client端向server端传递文件 Linux服务器端 //头文件 #include <stdio.h> # ...
- java 网络编程之TCP通信和简单的文件上传功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
随机推荐
- spring-boot-学习笔记(三)-过滤器
过滤器有两种配置方式,一种是通过注解来完成,一种是通过自定义配置类来设置 这里假设的场景是,定义一个过滤器,过滤所有请求,如果参数中没有username信息则重定向到login_page登录页面, ...
- js中判断为false的情况
document.write((new Boolean())+"<br />"); document.write((new Boolean(" ...
- O2O疯狂烧钱路:止血还是放血好
在国内,无论是互联网巨头还是创业者,很多都将O2O领域当做下一个金矿.而对于很多O2O项目来说,市场规模.用户基数.发展潜力等传统指数依然被当做硬性指标.而为了抢夺用户,很多O2O项目都只能疯狂烧钱, ...
- loadrunner通过web的post请求方法测接口 1
loadrunner通过web的post请求方法测接口 loginapi() { web_url("rest", "URL=http://192 ...
- Stock Starer股票盯盘
一个业余小项目,用于监控指定股票的成交指标,触发事件的主动通知 源码 !https://github.com/jeffchen81/stock-starer 设计说明 场景 定时任务1:通过网上Ope ...
- Soulwail
XMLHttpRequest 属性解读 首先在 Chrome console 下创建一个 XMLHttpRequest 实例对象 xhr.如下所示: inherit 试运行一下代码. var xhr ...
- Android系统使用Shell脚本预装apk
客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装. 考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本.shell脚 ...
- css自定义 range radio select的样式滑轮,按钮,选择框
写在前面: 之前踩坑css的时候,遇到滑轮,按钮,选择框这类型的东西,为了页面效果,总是需要自定义他们的样式,而不使用他们的默认样式.当时写的时候,我也是蛮头疼的,弄了个demo,链接在下面.对此做个 ...
- 用canvas实现简单的下雪效果
首先新建一个html文件,将body的背景设置为天空的那种深蓝色,并创建一个canvas,canvas的操作逻辑都放在snow.js中: <!DOCTYPE html> <head& ...
- Chrome 63 - What"s New in DevTools(中文字幕)
大家好,这是代码之声(codefm)第一期,今天给大家带来的是 What's New In DevTools (Chrome 63). Chrome 一般会每隔 6 周发布一次主版本.目前 Chro ...