udp

2019-04-02  本文已影响0人  程序设计法师
import socket
def main():
    # 创建一个udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 可以使用套接字收发数据
    udp_socket.sendto(b"helloworld", ("192.168.29.2", 8080))
    # 关闭套接字
    udp_socket.close()

if __name__ == "__main__":
    main()

微信截图_20190402155824.png
发送任意类型的数据,不只是byte,可以发送string,利用encode("utf-8")
import socket


def main():
    # 创建一个udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 可以使用套接字收发数据
    while True:
        send_data = input("请输入您想发送的数据")
        if send_data == "exit":
            break
        # udp_socket.sendto(b"helloworld", ("192.168.29.2", 8080))
        udp_socket.sendto(send_data.encode("utf-8"), ("192.168.29.2", 8080))
    # 关闭套接字
    udp_socket.close()


if __name__ == "__main__":
    main()

E:\python_project\NetWork\venv\Scripts\python.exe E:/python_project/NetWork/UDP.py
请输入您想发送的数据feqwf q
请输入您想发送的数据无法却无法
请输入您想发送的数据你好
请输入您想发送的数据232323
请输入您想发送的数据fdwewf
请输入您想发送的数据是不是
请输入您想发送的数据exit

Process finished with exit code 0
数据接收.png
udp接收数据
import socket


def main():
    # 创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定一个本地信息,自己的ip和端口
    localaddr = ("", 49347)
    udp_socket.bind(localaddr)
    while True:
        # 接收数据
        recv_data = udp_socket.recvfrom(1024)
        # 打印接收到的数据
        # recv_data这个变量中存储的是一个元祖(接收到的数据,(发送方的ip,端口))
        recv_message = recv_data[0]  # 存储接收的数据
        recv_address = recv_data[1]  # 存储发送方的地址信息
        # print(recv_data)
        # windows默认编码格式gbk,所以此时不能用utf-8解码
        print("发送方ip:%s 接收到的数据:%s" % (str(recv_address), recv_message.decode("gbk")))

    udp_socket.close()


if __name__ == '__main__':
    main()
E:\python_project\NetWork\venv\Scripts\python.exe E:/python_project/NetWork/ReceiveUdp.py
发送方ip:('192.168.29.2', 8080) 接收到的数据:呵呵
发送方ip:('192.168.29.2', 8080) 接收到的数据:呵呵你好
发送方ip:('192.168.29.2', 8080) 接收到的数据:呵呵你好我又来了
发送楼.png
上一篇下一篇

猜你喜欢

热点阅读