【发布时间】:2021-02-16 03:30:33
【问题描述】:
试图将文件从客户端发送到服务器。
这是我收到它的方式:
printf("Server receiving file...\n");
while((bytes_read = read(sd, buf, sizeof(buf))) > 0){ //second read now retrieving the file size
printf("writing");
fwrite(buf, 1, bytes_read, fp);
printf("checking if reached here");
}
由于某种原因,第二个打印语句“检查是否到达这里”从未到达,程序只是没有退出循环。可能是什么问题?
PS。我的客户发送所有字节,因此发送没有问题。它只是写入文件
【问题讨论】:
-
@MikeCAT 如何删除空字节,因为我无法通过 Internet 找到方法。我的发送代码已发布。除此之外,尝试将空字节写入文件会有问题吗?
-
@MikeCAT 我也很抱歉,因为我已经完全改变了我的问题的上下文。我仍然想知道如何在发送之前删除空字节
-
也许强制输出到屏幕上?在你的 printf 之后添加
fflush(stdout);,或者,也许更好的是,用换行符终止打印:printf("...\n"); -
达伦,“写作”出现了吗?如果不使用
printf("writing\n");重试(添加\n)