美文网首页
网络编程之UDP套接字编程

网络编程之UDP套接字编程

作者: 遇明不散 | 来源:发表于2019-04-22 14:24 被阅读0次

UDP套接字服务端

  • 创建UDP数据报套接字
import socket

# 功能:
#      创建一个套接字
# 参数:
#      socket_family : 选择地址族类型  AF_INET(IPv4) / AF_INET6(IPv6)
#      socket_type :  套接字类型 SOCK_STREAM(流式) /SOCK_DGRAM(数据报)
#      proto : 选择子协议类型  通常为0
# 返回值: 
#       返回套接字对象
sockfd = socket.socket(AF_INET,SOCK_DGRAM)
  • 绑定服务端地址(本机的IP和端口号)
# 功能:绑定IP地址
# 参数:一个包含两个元素的元组,元组第一个元素是主机名,第二个是使用的端口号
sockfd.bind(addr)
  • 消息的收发
# 功能:接收UDP消息
# 参数:每次最多接收多大的消息
# 返回值:
#      data  接收到的数据
#      addr  消息发送端的地址
# 一次接收一个数据报,如果数据报大小大于buffersize则会丢失部分消息
data,addr = sockfd.recvfrom(buffersize)

# 功能:发送udp消息
# 参数:
#      data  发送的消息  bytes格式
#      addr  目标地址
# 返回值:发送的字节数
sockfd.sendto(data,addr)
  • 关闭套接字
sockfd.close()

UDP套接字客户端

  • 创建套接字
import socket
sockfd = socket.socket(AF_INET,SOCK_DGRAM)
  • 消息收发
sockfd.sendto(data,addr)
data,addr = sockfd.recvfrom(buffersize)
  • 关闭套接字
sockfd.close()

补充函数

# 功能:发送tcp消息
# 参数:要发送的内容,bytes格式
# 返回值:成功返回 None 失败产生异常
sendall(data)

UDP应用之广播

  • 广播:一点发送,多点接收
  • 广播地址:一个网段内有一个指定的广播地址,是该网段的最大地址
  • 广播风暴:一个网络中有大量的广播就会产生广播风暴占用大量带宽,影响正常的访问速度

TCP套接字编程和UDP套接字编程区别

  • 流式套接字使用字节流的方式传输,数据报套接字以数据报形式传输数据
  • tcp会有粘包现象,udp有消息边界不会形成粘包
  • tcp 可以保障数据传输完整性,udp则不保证
  • tcp 需要进行listen,accept操作,udp不需要
  • tcp收发消息使用新的套接字,recv,send,而udp使用recvfrom,sendto

sys.argv 属性

  • 功能:获取命令行参数,得到一个列表
  • 命令本身是 argv[0]
  • 后面的参数从argv[1]开始,默认以空格分隔
  • 使用引号引起来的内容算作一个整体
  • 命令行参数都以字符串放入列表
#  test.py
import sys
print(sys.argv)

# python3 test.py
# ['test.py']

# python3 test.py hello
# ['test.py','hello']

# python3 test.py hello world
# ['test.py','hello','world']

# python3 test.py 'hello world'
# ['test.py','hello world']

相关文章

  • 网络编程之UDP套接字编程

    UDP套接字服务端 创建UDP数据报套接字 绑定服务端地址(本机的IP和端口号) 消息的收发 关闭套接字 UDP套...

  • tcp和udp

    【Python网络编程】利用Python进行TCP、UDP套接字编程 http://www.cnblogs.com...

  • JAVA套接字编程之UDP编程

    JAVA套接字之UDP编程 1 UDP协议 用户数据报协议UDP是无连接的服务。在无连接的情况下,两个实体之间的通...

  • 初见Linux-socket

    什么叫网络编程? 就是使用网络协议,进行网络通信。数据报->UDP 流式套接字-> TCP 原始套...

  • 网络编程之套接字

    套接字 套接字编程 根据socket模块提供的接口函数,进行组合使 用完成基于tcp或者udp的网路...

  • Day18总结

    一.网络通信过程TCP协议和UDP协议二.socket编程 1.socket编程定义:socket又叫套接字。指的...

  • 20年书单45《TCP/IP网络编程》

    45.《TCP/IP网络编程》|[韩]尹圣雨 推荐星级:★★★★ TCP?IP?UDP?套接字?域名?多进程?进程...

  • 网络编程之TCP套接字编程

    TCP套接字服务端 创建一个TCP流式套接字 绑定服务端地址(本机的IP和端口号) 设置监听套接字 等待处理客户端...

  • socket网络编程之二(回显程序实例)

    在我的上一篇文章socket网络编程之一(TCP套接字API)中,介绍了ipv4的套接字数据结构和tcp套接字相关...

  • 网络编程TCP服务端与客户端的搭建

    关于网络编程我们首先了解下SOCKET。socket(简称套接字),是进程之间通信的一个工具,负责进程之间的网络数...

网友评论

      本文标题:网络编程之UDP套接字编程

      本文链接:https://www.haomeiwen.com/subject/iakcgqtx.html