作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要执行这个功能:put X Y :将本地文件X上传到服务器,并在服务器端命名为Y
我已经写了设置连接所需的所有内容,我只想知道如何上传文件。我只知道send()
函数有 4 个参数,但它似乎只是发送一个字符数组。如何发送整个文件,例如图像?
在 Windows 上使用 HTTP。
最佳答案
就这样做
使用open()
打开本地文件进行读取,即
int fd = open(localFileName, O_RDONLY);
if (fd == -1)
errorFileCantBeOpenedForReadingAbortThis();
从文件中读取字节并将其写入套接字
int size;
unsigned char buffer[SOME_REASONABLE_SIZE];
size = read(fd, buffer, sizeof(buffer));
if (size == -1)
aReadErrorHandleIt();
if (write(sockfd, buffer, size) == -1)
aWriteErrorHandleIt();
循环执行此操作,直到写入所有数据。
在服务器端,您需要将数据写入可能通过 put
命令或您可能指定的某些自定义命令指定的文件。
当然,您应该首先将目标文件名以及指示文件写入即将开始的内容发送到服务器,并打开文件进行写入。
如果服务器通知客户端写入可能开始,然后客户端可以开始写入,直到您发送一些内容以表明已全部发送,然后服务器可以关闭文件,那就太好了。
关于c - 如何用 C 语言将文件从服务器上传到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28073520/
我是一名优秀的程序员,十分优秀!