2015-07-23 4 views
0

Мне нужно закодировать сервер Python, который прослушивает порт 5000 и интерпретирует данные.Интерпретировать данные в гнездо

Здесь код:

# -*- coding: utf-8 -*- 
import binascii 
import socket 


UDP_IP = "" 
UDP_PORT = 5000 

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.bind((UDP_IP, UDP_PORT)) 

while true: 
    data, addr = sock.recvfrom(150) 

В настоящее время я не могу интерпретировать данные, я стараюсь это FUNTION: binascii.b2a_uu() без результата. Данные во всех кадрах имеют одинаковый размер и кодируются по 32 битам.

Благодарим за помощь.

Николас.

Edit: Я использую Python 2.7

+0

Можете ли вы показать пример данных, которые вы получаете из сокета (например, вывод 'print') и объяснить, к чему вы хотите его преобразовать? –

+0

Если я распечатаю непосредственно данные на терминале, я получил: (специальные символы) или что-то вроде этого^A^@^@^@ ^?^@^@^A^@^@^@, если я напишу его в файле. Я хочу преобразовать двоичные данные в ASCII для получения сообщений (например, IP-адрес) на мой сервер. Я не могу использовать node.js, он не реализован на компьютере, и я не могу его установить. – NicoNB

+0

Okey, я вижу. Вы отправляете данные из другого сценария Python и как их кодировать перед отправкой? –

ответ

0

Решение: После recvfrom, хранить данные на вкладке. Каждая информация кодируется на 32 бита, я читаю таблицу 4 байта на 4 байта, и я использую функцию: struct.unpack ("> L", данные [0: 4]) [0] для извлечения информации. Thid позволяет иметь IP-адрес в длинном формате

Смежные вопросы