示例代码:

import socket
def main_client():
    #1创建套接字
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #2 准备接收方的地址
    udp_socket.bind(('',8081))
    dest_addr = ('192.168.100.38',8080)
    #构造发送的数据
    send_data = "that is from client!"
    #3发送数据
    udp_socket.sendto(send_data.encode('utf-8'),dest_addr)
    #4 接受接收方发送的数据
    recv_data,addr = udp_socket.recvfrom(1024)
    print("------client------")
    print(recv_data.decode())
    print(addr)
    print("------client------")

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

def main_server():
    #1 创建套接字
    udp_server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #2 绑定端口
    udp_server.bind(('',8080))
    #3 准备接受发送方地址
    dest_addr = ('192.168.100.24',8081)
    #4 接收数据
    recv_data,addr = udp_server.recvfrom(1024)
    #5 准备发送数据
    udp_server.sendto('that is from server!'.encode('utf-8'),dest_addr)


    print('------server------')
    print(recv_data.decode())
    print(addr)
    print('------server------')
    #6 关闭套接字
    udp_server.close()
if __name__ == "__main__":
    main_client()
    main_server()

在使用过程中一定要注意以下几点:

一:绑定端口的时候,数据是一个tuple;
二:客户端和服务端在互相通信的时候:要保证两点:1、服务端先阻塞监听,再向客户端发送数据;2、客户端要先发送数据,再阻塞监听,保证双方的阻塞状态跳出,否则会出现服务端或者客户端处
于阻塞状态,无法进行下面的代码流程。
posted on 2020-12-25 15:32  松风新雪初霁  阅读(157)  评论(0)    收藏  举报