【发布时间】:2020-12-30 17:21:43
【问题描述】:
我编写了一个从 python 服务器接收 PDF 文件的 C 客户端。我觉得一开始很容易。但是,这里有一些问题。接收和存储的 PDF 文件很奇怪。以下是程序的一些关键部分(省略了一些琐碎的细节)。
server.py
fp = open(filename,'rb')
content = str(fp.read())
connectionSocket.send(content.encode())
fp.close()
client.c
int main(void){
char content[filesize]; //have already gotten the content size
recvContent(sock, content, filesize); //recvContent is a function that receive given length data from socket
FILE* fp;
fp = fopen(filename,"wb"); // already get the file name
int j = 0;
while(j <= filesize){
fputc(content[j],fp);
j++;
}
fclose(fp);
}
int recvContent(SOCKET sock, void * content, int size){
int recvLen=0;
int count=0;
void * startb = content;
while (count < size) {
recvLen = recv(sock, (char *)startb,1024, 0);
startb += recvLen;
count += recvLen;
if (recvLen == SOCKET_ERROR)
closeSocket(sock);
}
return count;
}
当我打开收到的 PDF 文件时,它说它已损坏。当我用笔记本程序打开它时。部分内容如下。
%PDF-1.7\n%\xe2\xe3\xcf\xd3\n1 0 obj\n<</Type/XObject/Subtype/Image/Width 75/Height 75/Length 273/ColorSpace[/Indexed/DeviceRGB 1(\x00\x00\x00\xff\xff\xff)].....(omitted here ).......1]/CropBox[0 0 609.44 394.01]/Resources<</XObject<</Xi0 1 0 R/Xi4 25 0 R/Xi5 26 0 R>>/Font<</FXF20 14 0 R/FXF21 15 0 R/Xi1 2 0 R/Xi2 3 0 R/Xi3 4 0 \n%iText-5.5.10\nstartxref\n35132\n%%EOF\n
感谢您的帮助。
【问题讨论】:
-
请提供完整的工作示例,否则没有人可以帮助您。