ironPython - python 套接字文件传输,类型错误

ironPython - python socket file transfer, typeError

我正在尝试将二进制文件从在 ironPython 2.7.4 上运行的客户端发送到在 linuxbox 上的 cpython 2.7.6 上运行的服务器。我遵循了 this 示例,但是当服务器开始写入文件时(第一次调用 f.write),我得到一个错误:

TypeError: must be string or buffer, not int

这里是我认为相关的代码片段。

服务器:

def recvall(self, count):

    msgparts = []
    while count > 0:
        newbuf = self.conn.recv(count)
        if not newbuf: return None
        msgparts.append(newbuf)
        count -= len(newbuf)

        #print "%i bytes left" % count

    return "".join(msgparts)

#receive file, write out
f = open(fname, 'wb') 
chunk = self.recvall(1024)
while (chunk):
    f.write(1024) #<-- error happens here.
    chunk = self.recvall(1024)

    f.close()

客户端:

f = open(fname, 'rb') 
chunk = f.read(1024)
while (chunk):
    self.conn.send(chunk)
    chunk = f.read(1024)

f.close()

conn 是套接字连接 - 这有效,我可以成功传输 pickled dicts。

有什么提示吗?

感谢和问候, 多米尼克

f.write(chunk)

应该这样做(而不是 f.write(1024)

如错误消息所述,f.write 需要一个字符串参数,而 1024 显然是一个 int