06-udp网络程序-发送数据

目标

  • 知道使用 socket 的 sendto 方法能够发送数据

  • 知道使用 encode 方法能够对待发送数据进行编码

1. udp网络程序-发送数据

image-20180812212726084

2.实现效果

udp1

在windows中运行 “网络调试助手”

image-20180607222840996

image-20180607223100501

点击:“连接网络”

image-20180607223217262

3.实现步骤及核心方法介绍

3.1 实现步骤:

  1. 导入模块socket
  2. 创建socket套接字
  3. 发送数据
  4. 关闭套接字

3.2 核心方法:

  • UDP 发送数据使用的 3 个方法方法:

  • socket.socket —— 建立套接字

    """
    socket 参数说明
    1. socket.AF_INET       表示 IPv4 地址
    2. socket.SOCK_DGRAM    表示使用 UDP 协议传输数据
    """
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
  • socket.sendto —— 发送数据

    """
    sendto 参数说明
    1. 要发送的二进制数据
    2. 元组类型,指定把 (参数 1 的数据) 发送给谁
       (ip 地址字符串,端口数值)
    """
    udp_socket.sendto("你好".encode(), ("127.0.0.1", 8888))
    
  • socket.close —— 关闭套接字

    # 4. 关闭套接字(close)
    udp_socket.close()
    

4.参考代码

#coding=utf-8
# 导入socket模块
import socket

# 判断模块是否是程序的入口,判断整个模块是否是主模块
if __name__ == '__main__':

    # 创建socket
    # AF_INET 表示ip地址,也是internet互联网
    # SOCK_DGRAM 表示使用udp 协议
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 设置内容
    send_content = "哈哈,我来自火星!~"

    # 把文本内容转码,转成二进制数据
    send_data = send_content.encode("utf-8")

    # 发送数据
    # ("192.168.31.221", 8080) 接收数据方ip地址和端口
    udp_socket.sendto(send_data, ("192.168.31.221", 8080))

    # 关闭数据
    udp_socket.close()

运行结果:

在pycharm中运行脚本:

image-20180607222538894

在windows中运行“网络调试助手”:

image-20180607222614703