码迷,mamicode.com
首页 > 其他好文 > 详细

io操作-网络

时间:2019-11-19 13:48:55      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:物理   nec   字符串类型   使用   use   网络层 路由   速度   data   压缩优化   

网络模型
7层模型:
应用层 提供具体功能
表示层 压缩优化加密数据
回话层 选择传输服务
传输层 提供传输服务
网络层 路由选择,网络互联
链路层 数据转换,发送
物理层 提供硬件实体设备
tcp/ip 四层模型
应用
传输
网络
物理

ifconfig 查看ip地址


###传输服务

tcp 文件/网页/邮件
面向连接的传输服务
可靠,数据无丢失/错乱/重复
先连接,发送数据,断开连接

三次握手:
主动方发报文请求建立连接
被动方收到报文后,回报文允许连接
主动方收到报文后,再次发报文建立连接

四次挥手:
主动方发送报文请求断开
被动方收到信息后,回报文准备断开
被动方回报文,可以断开
主动方回报文断开连接

udp 视频聊天,群聊,广播
面向无连接的传输服务
不可靠,数据丢失


tcp socket

服务端:
from socket import *

s = socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, True)#断开立刻重新使用
s.bind((‘0.0.0.0‘, 8888))#bind()里面是ip port 组成的元组ip 字符串类型 port 整型
s.listen(5)
c, addr = s.accept()
data = c.recv(1024)
c.send(data) #接收发送消息都是字节串:字节/字符转换str - encode() - tybes - decode() - str
c.close()
s.close()

客户端:
from socket import *

s = socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, True)
s.connect((‘127.0.0.1‘,8888))
s.send(b‘ok‘)
s.recv(1024)
s.close()


udp socket

服务端:
from socket import *

s = socket(family=AF_INET, type=SOCK_DGRAM)
s.bind((‘127.0.0.1‘, 8888))
data, addr = s.recvfrom(1024)
s.sendto(data, addr)
s.close()

客户端:
s = socket(family=AF_INET, type=SOCK_DGRAM)
addr=(‘127.0.0.1‘, 8888)=
s.sendto(b‘ok‘, addr)
data, addr = s.recvfrom(1024)
s.close()

 

###tcp和udp区别
服务端和客户端的发送/接收配合使用
tcp字节流传输,发送速度大于接收速度,粘包

io操作-网络

标签:物理   nec   字符串类型   使用   use   网络层 路由   速度   data   压缩优化   

原文地址:https://www.cnblogs.com/chenlulu1122/p/11888617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!