Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo puedo pasar un tipo de lista de datos a través de UDP usando la programación de sockets en Python?

¿Cómo puedo pasar un tipo de lista de datos a través de UDP usando la programación de sockets en Python?

La lista o dictado en Python se puede convertir en una cadena JSON para enviar y luego volver a convertirse después de recibir.

¿Primero import?json

Luego, convierta la lista o dict a JSONjson_string?=?json.dumps(list_or_dict)

Si está utilizando Python3, el json_string aquí será de tipo str (es decir, el tipo Unicode de Python2), que puede necesitar ser codificado:

if type(json_string) == six.text_type:

json_string = json_string.encode ('UTF-8')

Use socket para enviar, por ejemplo s.sendto(json_string,?address)

La otra parte usa socket para recibir, por ejemplo json_string,?addr?=?s .recvfrom(2048)

Convertir JSON a lista o dict?list_or_dict?=?json.loads(json_string)

El siguiente es un ejemplo completo:

client.py#!/usr/bin/env?python

#?-*-?coding:?UTF-8?-*-

importar?socket

importar?json

importar?seis

dirección?=?('127.0.0.1',?31500)

s?=?socket. socket(socket.AF_INET,?socket.SOCK_DGRAM)

mi lista?=?[1,?2,?3,?4,?5,?6, ?7,?8,?9,? 10]

json_string?=?json.dumps(mylist)

if?type(json_string)?==?six.text_type:

json_string?= ?json_string.encode('UTF-8')

s.sendto(json_string,?address)

s.close()

server.py# !/usr/bin/env?python

#?-*-?coding:?UTF-8?-*-

importar ?socket

importar ?json

dirección?=?('127.0.0.1',?31500)

s?=?socket.socket(socket. AF_INET,?socket.SOCK_DGRAM)

s.bind(dirección)

json_string,?addr?=?s.recvfrom(2048)

mylist?= ?json.loads(json_string)

print(mylist)

s.close()

Ejecute primero server.py y luego client.py