[Python-UDP网络编程]

TCP是面向可靠连接的,UDP是面向无连接的,也就是不需要建立连接就可以发送数据

服务器端

import socket
# 使用SOCKET_DGRAM:表示使用UDP
s = socket.socket(socket.AF_INET, socket.SOCKET_DGRAM)

# 只需要绑定地址和端口
s.bind(("127.0.0.1", 9999))

while True:
    # 接收数据
    data, addr = s.recvfrom(1024)
    print ('Received from %s:%s.' % addr)

    # 发送数据
    s.sendto(b'Hello, %s!' % data, addr)

注意:

  1. 绑定端口和TCP一样,但是不需要调用listen()方法,而是直接接收来自任何客户端的数据

  2. recvfrom()方法返回数据和客户端的地址与端口

  3. 服务器收到数据后,直接调用sendto()就可以把数据用UDP发给客户端。

客户端

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for data in [b'Michael', b'Tracy', b'Sarah']:
    # 发送数据:
    s.sendto(data, ('127.0.0.1', 9999))
    # 接收数据:
    print(s.recv(1024).decode('utf-8'))
s.close()

注意:

  1. 首先仍然创建基于UDP的Socket,然后,不需要调用connect(),直接通过sendto()给服务器发数据:

  2. 从服务器接收数据仍然调用recv()方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,435评论 19 139
  • 29.1 引言 本章中我们要讨论另一个常用的应用程序:NFS(网络文件系统),它为客户程序提供透明的文件访问。NF...
    张芳涛阅读 1,097评论 0 4
  • 原文转自:Python教程 TCP/IP简介虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多。 计...
    李牧羊阅读 984评论 0 5
  • iOS网络HTTP、TCP、UDP、Socket 知识总结OSI 七层模型我们一般使用的网络数据传输由下而上共有七...
    蜗牛也有梦想阅读 2,584评论 0 3
  • 感谢我的姑妈,姑父。感谢您们在我们年幼的时侯给我们温暖,给我们各种帮助。让我们能在爱,关注,包容的环境中长大。 我...
    helen6616阅读 140评论 0 0

友情链接更多精彩内容