公共头文件:
#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分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复