网络编程 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的主要内容,如果未能解决你的问题,请参考以下文章

Socket网络编程

socket 网络编程

02 Socket网络编程

socket网络编程

Socket网络编程

python网络编程2--socket