В python я конвертирую dictionary
в json
string
, использую стандартный python encoding
, а затем base64
для дальнейшего encode
для отправки через socket
, как это.
item.data
является list
из dicts
.myconverter
есть для обработки datetime
.
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
print("UDP target IP:", UDP_IP)
print("UDP target port:", UDP_PORT)
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
def myconverter(o):
if isinstance(o, datetime.datetime):
return o.__str__()
async def main_loop()
....
async for item in streamer.listen():
for index, quoteDict in enumerate(item.data):
quote = json.dumps(quoteDict, default = myconverter)
sock.sendto(base64.b64encode(quote.encode('ascii')), (UDP_IP, UDP_PORT))
Когда я использую python
для получения данных, отправленных через socket
, вот так, все работает отлично:
import socket
import json
import base64
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(16384) # buffer size is 16384 bytes
quote_dict = base64.b64decode(data)
print(quote_dict)
Что такое эквивалентный раздел кода C#
, который decodes
python
enconded
datagram
выше?