1
0
mirror of https://github.com/fumiama/simple-kanban.git synced 2026-06-21 02:23:38 +08:00

修复linux sendfile语法

This commit is contained in:
fumiama
2021-05-03 00:10:53 +08:00
parent 3ac2667c42
commit 0a0a449a8f
2 changed files with 3 additions and 2 deletions

View File

@@ -84,7 +84,7 @@ int main(int argc,char *argv[]) { //usage: ./client host port
else puts("Send file error."); else puts("Send file error.");
#else #else
send(sockfd, &file_size, sizeof(uint32_t), 0); send(sockfd, &file_size, sizeof(uint32_t), 0);
if(!sendfile(sockfd, fileno(fp), &len, file_size)) puts("Send file success."); if(!sendfile(sockfd, fileno(fp), &len, htonl(file_size))) puts("Send file success.");
else puts("Send file error."); else puts("Send file error.");
#endif #endif
fclose(fp); fclose(fp);

View File

@@ -126,6 +126,7 @@ int sendAll(char* file_path, THREADTIMER *timer) {
timer->fp = fp; timer->fp = fp;
timer->is_open = 1; timer->is_open = 1;
uint32_t file_size = (uint32_t)fileSize(file_path); uint32_t file_size = (uint32_t)fileSize(file_path);
printf("Get file size: %u bytes.\n", file_size);
off_t len; off_t len;
#if __APPLE__ #if __APPLE__
struct iovec headers; struct iovec headers;
@@ -136,7 +137,7 @@ int sendAll(char* file_path, THREADTIMER *timer) {
sendfile(fileno(fp), timer->accept_fd, 0, &len, &hdtr, 0); sendfile(fileno(fp), timer->accept_fd, 0, &len, &hdtr, 0);
#else #else
send(timer->accept_fd, &file_size, sizeof(uint32_t), 0); send(timer->accept_fd, &file_size, sizeof(uint32_t), 0);
sendfile(timer->accept_fd, fileno(fp), &len, file_size); sendfile(timer->accept_fd, fileno(fp), &len, htonl(file_size));
#endif #endif
printf("Send %lld bytes.\n", len); printf("Send %lld bytes.\n", len);
closeFile(fp); closeFile(fp);