2012-01-18 15 views
7

Tôi rất mới lập trình bằng Python, nhưng không cần thiết phải hack một thứ gì đó với nhau rất nhanh.Làm thế nào tôi có thể gửi bất kỳ thứ gì khác ngoài chuỗi thông qua Python sock.send()

Tôi đang cố gắng gửi một số dữ liệu qua UDP và tôi có mọi thứ hoạt động ngoại trừ thực tế là khi tôi thực hiện socket.send(), tôi phải nhập dữ liệu dưới dạng chuỗi. Đây là chương trình của tôi, do đó bạn có thể thấy những gì tôi đang làm:

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() 

Làm thế nào tôi có thể nhận được nó để tôi có thể làm điều gì đó trong hệ thập lục phân như s.send (ff: 23: 25: a1) ví dụ, vì vậy khi tôi nhìn vào phần dữ liệu của gói trong Wireshark, tôi thấy ff: 23: 25: a1

Trả lời

12

Bạn đang sử dụng Python 2.7 hoặc 3.2?

Trong 3.2 bạn có thể làm:

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

dữ liệu sau đó sẽ được tính bằng:

b'\x01\xAF\x23' 

Trong 2,7 giống nhau có thể được thực hiện với:

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

Cảm ơn rất nhiều, Tôi đang sử dụng Python 2.7 và đề xuất của bạn đã thực hiện thủ thuật! – Adam

Các vấn đề liên quan