随机模块及网络编程基础

随机模块

导入

import random

随机整数

包括最大值,不可加步长

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

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

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

随机选择一个返回

random.choice(列表)

随机取多个返回

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

random.sample(列表,取几个)

打乱顺序

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

random.shuffle(列表)

随机生成八位数验证码示例

import random

i = 0
s = ""
while i < 8:
    t = chr(random.randint(65, 90))
    t2 = chr(random.randint(97, 122))
    n = random.randint(0, 9)
    l = [t, t2, n]
    s += str(random.choice(l))
    i += 1
print(s)
import random

i = 0

while i < 8:
    t = None
    num = random.randint(1, 3)
    if num == 1:
        t = random.randint(0, 9)
    if num == 2:
        t = chr(random.randint(65, 90))
    if num == 3:
        t = chr(random.randint(97, 122))
    i += 1
    print(t, end="")

网络编程基础

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()
    

收发消息示例

# 导入socket模块
import socket
# 创建udp套接字
udp_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
ip = "169.254.205.75"
port = 8080
udp_client.sendto("Fuck you 中文字符,。?".encode("utf8"), (ip,port))
res = udp_client.recvfrom(1024)
msg, addr = res
print(msg.decode("gbk"), type(msg))

# print(res[0].decode("utf8"))
# print(res)

# 关闭套接字
udp_client.close()

Tcp协议

建立连接三次握手

  • 客户端–》确定服务端是否开启 --》服务端
  • 客户端《-- 确定服务端已存在 seq=y并且确认客户端是否开启《–服务端
  • 客户端–》确定客户端为开启状态–》服务端

进行数据传输

断链接四次挥手

  • 客户端–》发送完所有需求,确定不会再向服务端请求–》服务端
  • 客户端《-- 服务端确认,并完成需求的操作《–服务端
  • 正在完成需求
  • 客户端《–需求操作完成,向客户端发送释放请求《–服务端
  • 客户端–》确认请求–》服务端

互联网五层协议

应用层》传输层》网络层》数据链路层》物理层

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值