【发布时间】:2015-08-20 23:41:34
【问题描述】:
我正在尝试打开一个文件,然后将内容发送到 TCP 服务器。目前,我只是打开文件并将数据发送到缓冲区,服务器将访问该缓冲区。我不确定如何执行此操作以及如何跟踪单独文件中的所有位。我不是在寻找一个具体的答案,只要朝着正确的方向迈出一步就会有帮助!谢谢!
/* Open the input file to read */
FILE *fp;
fp = fopen(input_file, "r");
if (fp == NULL) {
perror("Error opening the file");
return(-1);
}
/* Send the contents of the input file to the server */
if (fgets(recvBuffer, buffer_size, fp)!=NULL) {
}
【问题讨论】:
-
简单来说,您必须 connect() 到服务器(可能使用 inet_ntop() 将服务器的主机名和端口解析为 sockaddr_in),这将返回 int sd。然后 write() 缓冲区内容进入循环,直到文件结束。然后shutdown(),清空read()以确保服务器获取所有数据并close()。
-
假设服务器也会在 eof 上关闭(SHUT_WR)(所有编写良好的服务器都会这样做)。