网络编程 socket
Posted a3002
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程 socket相关的知识,希望对你有一定的参考价值。
sever端
import socket
sk=socket.socket() 实例化一个对象
sk.bind((‘ip地址‘,端口号))
sk.listen(数字) python3.4以上不用加数字
conn,addr=sk.accept() 阻塞
conn.send(bytes类型的内容)
msg=conn.recv(数字)
conn.close()
sk.close()
client端
import socket
sk=socket.socket()
sk.connect((‘服务端的ip’,服务端的端口))
sk.recv()
sk.send()
sk.close()
OSI五层协议
应用层 http、https 协议
传输层 TCP、UDP协议 四层路由器,四层交换机
网络层 IP协议 路由器,三层交换机
数据链路层 Arp协议 网桥,网卡,以太网交换机
物理层 中继器,集线器,双绞线
粘包现象:
合包现象:数据很短,时间间隔短
拆包现象:大(文件)数据会发生拆分,不会一次性全部发送到对方,对方在接受的时候很有可能没办法一次性接收到所有信息
那么没有接收完的信息很有可能和后面的信息黏在了一起
粘包现象只发生在TCP 协议中,tcp协议的传输是流式传输,每条信息与信息之间是没有边界的
udp协议是不会发生粘包现象的,适合短数据的发送,不建议发送过长的数据,否则会增大数据丢失的几率
粘包现象的本质是:收发数据的边界不清晰,接收数据这一端不知道要接收数据的长度是多少
以上是关于网络编程 socket的主要内容,如果未能解决你的问题,请参考以下文章