公共头文件:
#pragma once #include<stdio.h> #include<stdint.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<stdlib.h> #include<time.h> #include<stdbool.h> #include<signal.h> #define SERVERPORT 1989 #define FTM_STAMP "%lld\r\n" #define lv_exit(str)\ perror(str);\ exit(1);
服务器 安装
apt-get install apache2
在/var/www/html/ 路径放置一张图片
打开浏览器访问 http://192.168.244.154/test.jpeg
客户端代码:
#include "proto.h" int main(int argc, char const *argv[]) { int sfd = socket(AF_INET, SOCK_STREAM, 0); if (sfd < 0) { perror("socket"); exit(1); } struct sockaddr_in seraddr; seraddr.sin_family = AF_INET; seraddr.sin_port = htons(80); //服务器端口 seraddr.sin_addr.s_addr = inet_addr("192.168.244.154"); if (connect(sfd, (void *)&seraddr, sizeof seraddr) < 0) { perror("connect"); exit(1); } FILE *fp = fdopen(sfd, "r+"); if (fp == NULL) { perror("fdopen"); exit(1); } else { fprintf(fp, "GET /test.jpg\r\n\r\n"); fflush(fp); } while (1) { char buf[512]={0}; int len=fread(buf,1,sizeof buf,fp); if (len==0) { break; } fwrite(buf,1,len,stdout); } fclose(fp); return 0; }
执行:
./cli > lv
eog lv
结果如下:
0.0分
1 人评分