第二十七次总结:random模块,网络编程(2)

本文介绍了Python的random模块,包括随机整数、选择和打乱序列的操作。接着讲解了IP地址的分类,特别是IPv4,并涉及了UDP通信的基本过程,如创建套接字、发送和接收消息,以及数据类型的转换。同时概述了网络通信中的三次握手和四次挥手过程。
摘要由CSDN通过智能技术生成

1.

random模块

 

导入

import random

 

 

随机整数

包括最大值,不可加步长

random.randint(最小值,最大值)

不包括最大值,但可以给步长

random.randrange(最小值,最大值,步长)

 

 

随机选择一个返回

 

random.choice(列表)

 

 

随机取多个返回

随机取多个,返回结果是列表

random.sample(列表,取几个)

 

 

打乱顺序

用于洗牌,会改变列表自身数据

random.shuffle(列表)

 

2.IP地址

windows

cmd 命令提示符下

ipconfig

 

 

linux

在终端

ifconfig

 

IP地址的分类

  • ipv4

  • ipv6

 

分类寻址

IPV4被分为五大类:ABCDE

A类为:点分四组中的第一组地址范围为0~127的IP地址。已二进制来看就是“首位为0”

B类:128~191.二进制首位为10

C类:192~223.二进制首位为110

D类:224~239.二进制首位为1110

E类:240~255.二进制首位为1111

 

二进制

数据逢二进一

十进制二进制
00
11
210
311
4100
5101
6110
7111
81000

 

 

进制转换

十进制转换为二,八,十六进制的方法

num = 15  # 进制的转换
​
m = bin(num)  # 十制制转二进制
print(m)
ba = oct(num)   # 十进制转八进制
print(ba)
sl = hex(num)   # 十进制转十六进制
print(sl)

结果

0b1111
0o17
0xf

 

 

udp通信

udp收发消息

  • 创建套接字

    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  • 发消息

    udp_socket.sendto(bytes类型数据,(IP地址字符串,端口整数型))
  • 收消息

    udp_socket.recvfrom(字节数)

    返回值,元组

    (bytes数据,(str发件方的ip,int发件方的端口))

  • 关闭套接字

    udp_socket.close()

 

 

 

数据类型的转换

str转bytes

变量 = str对象.encode(编码格式)

 

byte转str

变量 = bytes对象.decode(编码格式)

 

示例

a = "好"
print(a, type(a),"a")
b = a.encode("utf8")
print(b, type(b),"b")
​
c = b.decode("utf8")
print(c, type(c),"c")

效果

C:\Users\python_hui\Anaconda3\python.exe G:/untitled2/28/03udp/3.py
好 <class 'str'> a
b'\xe5\xa5\xbd' <class 'bytes'> b
好 <class 'str'> c
​
Process finished with exit code 0
​

 

 

三次握手

 

四次挥手

 

 

互联网五层协议

 

原图:

 

套接字工作流程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值