所以我试图发送一个文件(在这种情况下一个.jpg图像)二进制从客户端在python 3到C服务器通过管道和由于某种原因它显示错误,水管坏了,这里是代码: 蟒蛇:发送二进制图像通过管道在python到C服务器
import os,sys,errno,pipes,signal,time
def Tuberia():
fifo = "/tmp/fifoNombre"
print ("conecting to a pipe...",fifo)
file = open("/home/luisro/Pictures/64.jpg","r+b")
f = open(fifo,'wb')
for line in file:
print(line)
f.write(line)
f.close()
file.close()
以及C服务器:
void reciveFile(){
int fn;
char * fifoNombre = "/tmp/fifoNombre";
// //opens the pipe for reading
mkfifo(fifoNombre, 0666);
unsigned char datos[MAX_BUF];
fn = open(fifoNombre, O_RDONLY);
read(fn, datos, MAX_BUF);
saving(datos,"/home/luisro/Desktop/algo.jpg");
unlink(fifoNombre);
}
void saving(unsigned char *data, char* dirDest){
FILE *flujoArchivo = fopen(dirDest, "wb");
if(flujoArchivo == NULL){
printf("Error saving.\n");
exit(-1);
}
int writed_size = fwrite(data, sizeof(unsigned char), MAX_BUF, flujoArchivo);
fclose(flujoArchivo);
}
所以这些都是功能我不知道,如果是Python客户端或问题的C服务器,提前致谢
为/ tmp/fifoNombre不断填充? – TheAschr
是的服务器创建它 – luisro333