python笔记-11(网络编程)

这篇博客介绍了Python中的网络编程,包括UDP的无连接通信方式,TCP的三次握手连接,以及如何使用TCP实现文件下载。在UDP部分,讲解了socket的使用和数据发送;TCP部分涉及客户端/服务器端设计,以及TCP通信流程;文件下载部分展示了客户端如何请求并接收服务器端的文件数据。
摘要由CSDN通过智能技术生成

1、UDP

udp的通信方式要求通信双方不需要提前建立连接,类似于广播,广播员直接喊就行了他不管其他人有没有收到,他只负责喊。

提到网络编程就不得不说socket套接字,套接字的构成为 ip地址:端口号。在网络中提供了ip地址就可以定位到某台计算机,注意该ip地址是指公网ip,如果是在局域网下当然也是可以的,比如我们常见的192.168.1.100这种。我们在连接路由器的时候路由器可能会默认给我们的设备分配一个本地ip地址。

在python的UDP编程中,需要定义socket,同时为socket指定数据发送的方式,同时绑定数据的发送端口。如下代码定义了数据的发送预数据的接收,在main中定义了socket的通信方式与数据发送方式。在接收消息中绑定了发送端口(如果不绑定,系统会随机分配一个端口),同时使用sendto方法发送数据,发送数据时指定接收方的ip地址与端口号。

# udp
import socket


def send_message(s):
    # 绑定发送端口
    s.bind(("", 8081))
        # 绑定接收方的ip与端口号
    text = input("请输出要发送的数据:")
    s.sendto(text.encode("gbk"), ("127.0.0.1", 8080))


def receive_message(s):
    text = s.recvfrom(1024)
    print(text[0].decode("gbk"))



def main():
    # socket.SOCK_DGRAM UDP的数据报套接字
    # socket.AF_INET用于internet进程间通信
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while True:
        try:
            number = int(input("功能选择:1——发送数据 2——接收数据 3——退出 \n"))
            if number == 1:
                send_message(s)
            elif number == 2:
                receive_message(s)
            elif number == 3:
                break
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值