0

我正在尝试将 jpg 图像从一台 PC 中的 ac# 服务器复制到另一台 PC 中的 python 客户端。这个想法只是读取图像内容:

        string text = File.ReadAllText(newPath);
        //or
        byte[] text = File.ReadAllBytes(newPath);

并发送文本:

                Byte[] sendBytes = text
                networkStream.Write(sendBytes, 0, sendBytes.Length);
                networkStream.Flush();

python 客户端收到文本并立即将其保存到 jpg 文件中。

我知道这听起来很疯狂,但它奏效了!我在另一台服务器上看到了它,想知道他们是怎么做到的。

我找了几天的解决方案,但我仍然一直只收到部分数据(如果文件是 7.78 MB,我只收到 7.74 MB)。

我已经在这里检查了重复的帖子,我发现的只是将文件从相同的语言服务器传输到相同的语言客户端。

我尝试使用StreamReaderand BitConverter,但我仍然只得到图像的一部分,而不是全部。

保存接收到的图像的python代码是:

    rcvdD = socketPCP.recv(512000000) #I thought that the recv Size is causing to the problem
    try:
            filename = "image.jpg"
            print "NAME:",filename
            print "\n\r\n\rNEW FILE RECIEVED!\n\r\n\r"
            f=open ('D:/Files/'+filename , 'w')
            f.write(rcvdD)
    except Exception,e:
            print e

谢谢你!

4

1 回答 1

0

我不太擅长 python,但我记得你应该继续 recv()-ing 将每个块附加到最终缓冲区中,直到你收到零长度数据或错误,然后将你在该缓冲区中获得的内容写入磁盘。

于 2013-05-14T14:24:39.223 回答