[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
客户端发送的消息,服务端接收并在终端中显示出来
服务端代码(server.c):
#include <stdio.h> #include <sys/socket.h> #include<netinet/in.h> #include
<errno.h> #include <unistd.h> #include <strings.h> int main(void) {
//1.建立TCP套接字sockfd int sockfd = socket(AF_INET,SOCK_STREAM,0);
//2.绑定套接字sockfd与IP地址和端口号 struct sockaddr_in addr;//本机地址结构体 socklen_t len =
sizeof(addr); bzero(&addr,len); addr.sin_family = AF_INET;//协议簇
addr.sin_addr.s_addr = htonl(INADDR_ANY);//自动获取本机IP addr.sin_port =
htons(50021);//端口号 bind(sockfd,(struct sockaddr *)&addr,len);
//3.设置套接字socket进入监听状态 listen(sockfd,3); //4.等待远程客户端连接请求
//5.收到请求后,得到一个专用于收发数据的连接套接字connfd int connfd = accept(sockfd,NULL,NULL);
//6.使用连接套接字与客户端通信 char buf[100]; while(1) { bzero(buf,100);
read(connfd,buf,100);//读取客服端发来的信息 printf("receive from client massage:%s",buf);
} close(connfd); close(sockfd); return 0; }
客户端代码client.c
#include <stdio.h> #include <sys/socket.h> #include<netinet/in.h> #include
<errno.h> #include <unistd.h> #include <string.h> int main(void) {
//1.建立TCP套接字sockfd int sockfd = socket(AF_INET,SOCK_STREAM,0);
//2.绑定套接字sockfd与IP地址和端口号 struct sockaddr_in addr;//本机地址结构体 socklen_t len =
sizeof(addr); bzero(&addr,len); addr.sin_family = AF_INET;//协议簇
addr.sin_addr.s_addr = htonl(INADDR_ANY);//自动获取本机IP addr.sin_port =
htons(50021);//端口号 //3.对服务端发起连接请求 if(connect(sockfd,(struct sockaddr
*)&addr,sizeof(addr))==0) { printf("connection sucessful\n"); } //4.与服务端进行通信
char sendbuf[100]; while(1) { bzero(sendbuf,100);
fgets(sendbuf,100,stdin);//从键盘获取字符,到sendbuf
write(sockfd,sendbuf,strlen(sendbuf));//发送sendbuf } close(sockfd); return 0; }
效果图: