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