Python高级——网络编程_03_UDP

 

网络编程

 

ip地址:计算机网络中的计算机标识<身份>

ipv4 4字节/ipv6 8字节

 

Linux:ifconfig查看网卡信息

windows:ipconfig查看网卡信息

ping 目标ip/域名

127.0.0.1 本地环回测试

 

端口

标识一台计算机中一个应用程序<服务>

操作系统分配给网络应用程序的编号

 

端口号:

标识端口的一个编号 0-65535

 

网络编程中,一般IP地址和端口都是组合使用

知名端口

0-1023

22 SSH服务

21 FTP服务

80 HTTP服务

动态端口

1024-65535

查看端口:

netstat -an | grep ":端口"

lsof -i [tcp/udp]:8080  列出端口对应的程序

 

UDP:用户数据报协议   

特点:无连接,资源小,速度快,数据包最大是64K

优点:速度快,占用资源小,无需连接

缺点:传输数据不可靠,易丢包 没有流量控制,发送端一直发送,接受方需要及时接收,否则容易出现卡死状况

 

使用场景:

QQ、微信的音视频传输

上课使用的公屏软件

发送广播消息

 

socket(套接字)

功能:实现不同计算机中服务之间的进程通信的工具

格式:socket.socket(socket.参数一,socket.参数二)

参数一:AF_INET:ipv4类型    AF_INET6:ipv6类型

参数二:SOCK_DGRAM:(UDP协议)  SOCK_STREAM(TCP协议)

 

绑定端口 brind

功能:设置固定端口,IP地址填写空格代表本机的任意IP

格式:

local_addr = ("",7788)

通过套接字.bind(local_addr)

 

发送数据 sendto(数据,(ip,端口))

接收数据 recvfrom(1024) 1024 : 接收数据最大值 ,返回值:数据,(ip,端口)

编码数据 encode()        解码 decode()    

作用:因数据传输,全部转换为二进制 byte类型

参数一:编码格式:utf-8/gbk        

utf-8 汉字为3个字节        gbk汉字为2个字节

参数二:errors取值:如果取值strict 代表严格模式,出错抛出异常  ignore代表宽松,忽略异常

注:Linux和mac中默认传输都是utf-8,但windows获取为utf-8,发送为gbk

 

广播:

作用:设置socket的选项,允许发送广播消息

格式:udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)

注:并且IP设置为广播网段255

 

关闭套接字 close()

 

思考:以上的程序如果选择了接收数据功能,并且此时没有数据,程序会堵塞等待,如何才能让这个程序收发数据一起进行?

当没有数据返回时,

返回为:b""

可以通过判断,进行确定数据传输是否结束和连接关闭

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值