2015-08-18 2 views
1

я пытаюсь сделать программирование с использованием ScTP python2.6 и pysctp пакета. Я смог захватить сообщение с сервера, но не смог извлечь шестнадцатеричный дамп полученного сообщения из sctp-сокета. И как отправить ответ Hex в качестве ответа, используя тот же сокет для подключенного сервера.python2.6 SCTP получать и отправлять шестнадцатеричные значения через ScTP гнезда

Предположим, что мой сервер не зависит от этого клиента и он постоянно пытается подключиться к адресу 192.168.10.13.

Код:

#!/usr/bin/python 

import sys 
import socket 
import pysctp 
import pysctp.sctp as sctp 

MAXRECVBUFFERSIZE = 2048 
bindingIp = "192.168.10.13" 
socketPort = 112233; 
socket  = sctp.sctpsocket_tcp(socket.AF_INET); 

responseHex =[0xd0, 0x36, 0x02, 0x5a, 0x00, 0x51, 0x03, 0x00, 0x15, 0x00, 0x08, 0x00, 0x11]; 

socket.events.clear(); 
socket.bind((bindingIp, socketPort)); 
socket.listen(3); 

client, addr = socket.accept(); 
buffer = client.recv(MAXRECVBUFFERSIZE); 
print buffer // This prints binary dump on the terminal 
// And I want to send hexResponse variable through the same socket 

socket.close(); 
exit(0) 

ответ

0

Первое, помните, не ставить точку с запятой в конце вашего заявления. Вам также не нужен выход (0) в конце файла.

Чтобы получить дамп, из «буфера», вы можете сказать: print map(hex, buffer)

Чтобы отправить шестигранную ответ, самый простой способ будет изменить определение responseHex выглядеть следующим образом:

responseHex = '\xd0\x36\x02\x5a\x00\x51\x03\x00\x15\x00\x08\x00\x11'

Затем он должен быть передан функции client.send().