2012-01-18 2 views
7

저는 파이썬으로 프로그래밍하는 데 매우 익숙합니다.하지만 필자는 필사적으로 함께 해킹해야했습니다.파이썬으로 문자열 이외의 것을 어떻게 보낼 수 있습니까? sock.send()

UDP를 통해 일부 데이터를 보내려고하고 있는데 socket.send()를 할 때 문자열 형식으로 데이터를 입력해야한다는 것을 제외하고는 모든 것이 작동합니다.

import socket 


IPADDR = '8.4.2.1' 
PORTNUM = 10000 

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

s.connect((IPADDR, PORTNUM)) 

s.send('test string'.encode('hex')) 

s.close() 

가 어떻게 그것을 얻을 수 내가 s.send처럼 진수로 뭔가를 할 수 있도록 : 당신은 내가 뭐하는 거지 볼 수 있도록 여기 내 프로그램입니다 (FF : 23 : 25 : A1) 예를 들어, 그래서 Wireshark에서 패킷의 데이터 부분을 볼 때 ff : 23 : 25 : a1

답변

12

파이썬 2.7 또는 3.2를 사용하고 있습니까? 3.2에서

당신이 할 수 있습니다 :

data = bytes.fromhex('01AF23') 
s.send(data) 

데이터는 다음과 같아야합니다 : 같은 2.7에서

b'\x01\xAF\x23' 

이 달성 될 수있다 : 너무 많은

data = '01AF23'.decode('hex') 
+0

감사합니다, 저는 파이썬 2.7을 사용하고 있습니다. 여러분의 제안이 트릭을했습니다! – Adam

관련 문제