C - 从不兼容的指针类型传递'send'的参数 2



我想向我的服务器发送一个文本文件,但我收到了这个错误:

warning: passing argument 2 of 'send' from incompatible pointer type [-Wincompatible-pointer-types]
22 | send(sock, Download , 4096, 0);
|            ^~~~~~~~
|            |
|            FILE * {aka struct _iobuf *}

我在这部分的代码是:

int sock;
FILE *Download;
void Downloads(){
char *filename = "X.txt";
Download = fopen(filename, "r");
send(sock, Download , 4096, 0);
}

我该怎么修?它将在Windows上运行。

send()发送一个已在内存中的字节数组;它不知道如何从CCD_ 2指针中读取字节。要执行您想要的操作,您需要设置一个循环,从文件中读取一个字节数组,然后调用send()将该数组发送到网络,然后重复,直到文件中的所有字节都已发送。请务必始终检查每个send()调用返回的返回值,因为它可能并不总是发送您要求它发送的所有字节。

最新更新