Fork me on GitHub

网络编程之TCP编程

TCP

tcp介绍(传输控制协议)

udp写信:

放进去就回发送走

收信人的地址

写信不安全

别人也会收到

飞秋可能收不到

tcp:

打电话

tcp有补救措施

保证数据一定会到

电流导致数据乱了

打电话要拨号,嘟嘟嘟的过程

必须先建立链接

tcp有应答机制

  1. 一段时间内没有应答,超时重传

  2. 迅雷下载的上传速度就是应答

  3. 错误校验

  4. 流量控制,阻塞管理

    不能传太多

UDP 飞鸽传书

保证稳定

udp流程

建立套接字

sento

recvfrom

bind端口

TCP流程

严格区分客户端和服务器

选区:选择服务器,越近越不卡

提供服务的就是服务器

客户端:ipad点菜机

多了链接服务器

铁了心要用括号就要转义

大写的o前面插入,小写的o插入到下面

自己写的名字和import一样

tcp说多少句都是一个连接

客户端和服务器

udp 用户数据报协议

TCP 服务器

客户端一般不绑定端口

listen被动套接字

accept等待客户端链接

流程:

买个手机--套接字

插上手机卡--套接字绑定

接听状态--listen(设置为正常接听状态)--买手机卡默认你打电话给别人

等待别人打电话--accept

括号就是反斜杠

大O前面插一行

小o前面插一行

大A行末 大I行首

bind一定是绑定元组

listen写128就可以了

拆包等号右边是一个元组,等号左边有两个变量,这个叫做拆包

accept接受新的套接字(客服),addr是别人给你打电话的信息(打电话给你的电话号码之类的)

bind 电话机申请了7890

人->联通打电话

人工---找个人给他服务,accept,打电话,客服(由电话主机给他传了客户的信息)给他服务

服务器:

先买了电话机

先变成listen--等待别人给你打电话

找了个新的套接字为他服务

--

又来了一个人

又找个客服

监听套接字只等待

下面负责通信

--

一直阻塞,直到有客户来(accept)来的时候才解阻塞

客户端先发

linux命令行创建新窗口

总结命令行‘


客户端先运行还是服务器先运行

accept卡在这里不走了

卡着不走等客户端

accept等一个客户端调用connect

循环为多个客户端服务

先拿号

把标记的客户端关了

recvfrom有数据还有,ip之类的 面积你

recv只有数据

你怎么知道客户端只需要服务一次,就是循环为这个客户多次服务


你怎么知道别人不需要服务

recv解堵塞,有两种方式

,一种是

客户端发送数据

客户端调用close

9.55打电话,亮名牌,挂了我就投诉你

同一时刻为多个服务


文件下载器

什么叫下载

服务器down一个东西

收到一点我就写一点

客户端比较简单

服务器比较麻烦

要下载东西,需要有什么前提

1.有网络---创建套接字

2.connect

3.下载文件名

4.读出来那个文件再发给我

最简单的下载流程

1.限速,验证,超级管理员,vip会员

with怎么用

打开成功,读写异常

1571888919844

try:

​ xxx

except:

​ xxx

with open("xxx") as f

里面不需要写close

保证百分之百被close关了

先发请求,给文件名

新建一个文件

把东西放到文件里面去

流程:

1571932293052

1024==1字节

1024*1024=1mb

写上个b是二进制

recv是二进制

2-to-too

d剪切

p粘贴放进去

开多一个函数有独立功能

with 打得开,读数据不一定用

新建一个文件不可能失败

try的用法

1571933616312

如果下载的东西没有的话怎么办

vim xxx+09

上课都不认真听,下课就会认真了?

listen里面的参数(四个小时连续上)

tcp稳定 udp不稳定

同一时刻有多少客户端连接你有关系(一丁点关系)

128 Ubuntu特别适合做服务器

高并发好几百万个人

tcp注意点

  • tcp服务器一般情况下需要绑定,否则客户端找不到这个服务器。
  • 网络安全可能会有其他不是tcp或者udp
  • 参数不管它,以后查一查就好了
  • 收数据要绑定端口,发数据不绑定也行,给我打电话来电显示就行了
  • qq多开,udp,硬件限制所以是udp
  • 一起为大家服务,两台电脑服务。慢慢的都给另一台电脑
  • 在一个网络里面,知道ip和端口
  • 在互联网里面可以不用绑定。
    • 第一步,先登录。我知道腾讯服务器的端口。连接腾讯的服务器
    • 第二步,qq2登陆,腾讯服务器起到了一个转发的服务
    • 多开qq,有不同的端口

注意点

  • listen,可以把主动变为被动
  • udp不需要connect连接。tcp是面向连接的通信,电话的模型,udp是写信的模型
  • accept返回到是一个套接字和地址
  • 服务器没有接到请求的时候会卡在accept那个时候
  • listen关闭了之后,不能接受新的客户端
  • 关闭了accept的新套接字意味着客户端已经服务完毕
  • 服务器会解阻塞
    • 收到了消息
    • 对方挂了电话,判断长度是否为0

tcp三次握手,四次挥手只是为了知识点完整

会在网络通信过程那里讲

posted @ 2020-02-24 11:43  WalterJ726  阅读(178)  评论(0编辑  收藏  举报