1
我通過套接字連接發送一些數據。我有一個時鐘在一個線程中滴答滴答。從那裏我得到結果到另一個功能;Python pickle錯誤的編碼
Midi.py
def startClock(self):
frame_rate = 24
interval = 1./frame_rate
while True:
if self.playing:
for i in range(0,8):
#do some irrelevant stuff here
quarter_frame = '0x{}{}'.format(i,x)
quarter_frame = int(quarter_frame, 16)
clock = [0xF1, quarter_frame]
yield(clock)
Main.py
def startClock(self):
clock = midi.startClock()
for i in clock:
client.sendMessage(i)
print(i)
,其輸出在客戶機側下面和哪個是正確的:
[241, 12]
[241, 16]
[241, 38]
[241, 48]
[241, 64]
[241, 80]
[241, 96]
[241, 112]
...
當我通過t發送它Ø服務器,就像這樣:
def sendMessage(self, message):
self.s.send(pickle.dumps(message))
我得到一個迭代,如下所示(這不同於不定期,但似乎從1到去 - 16):
[241, 0]
[241, 2]
[241, 3]
[241, 4]
[241, 5]
[241, 7]
[241, 8]
[241, 9]
...
在這裏,我收到消息:
def receiveMessage(self, conn, addr):
try:
while True:
data = pickle.loads(conn.recv(1024))
print(data)
哪裏出問題了?
HM。你可以使用base64編碼http://base64encode.net/python-base64-b64encode來查看它是否真的是編碼問題 – Nicolas78
爲什麼你有兩個'startClock(self)'方法? –
Main.py中的一個處理按鈕點擊,另一個開始時鐘。 – boortmans