嵌入式网络编程-C/S模型
提示:本代码是客户端输入小写“hello”给服务端,服务端返回大写HELLO给客户端。
并且是TCP协议的哦~
一、源码
客户端(client.c)
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<ctype.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
#include<errno.h>
#include<pthread.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<sys/ioctl.h>
int main(int argc ,char *argv[])
{
int ret = 0;
int e = 0;
int sockfd = 0;
int conter = 10;
char buf[100];
struct sockaddr_in addrc;//定义结构体
addrc.sin_family = AF_INET;
addrc.sin_port = htons(9527);
inet_pton(AF_INET,"127.0.0.1",&addrc.sin_addr);
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd <0)
{
printf("socket error");
}
printf("sock success! fd is%d\n",sockfd);
ret = connect(sockfd,(struct sockaddr *)&addrc,sizeof(addrc));
if(ret!=0)
{
printf("connect err");
}
printf("connect success!\n");
while(--conter)
{
write(sockfd,"hello",5);
ret = read(sockfd,buf,sizeof(buf));
write(STDOUT_FILENO,buf,ret);
}
return 0;
}
服务端(server.c)
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<ctype.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
#include<errno.h>
#include<pthread.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<sys/ioctl.h>
int main(int argc ,char *argv[])
{
int sockfd = 0;
int cfd = 0;
int ret = 0;
int i = 0;
int addrc_len = 0;
char bul[100];
char buf[100];
struct sockaddr_in addrs,addrc;
addrs.sin_family = AF_INET;
addrs.sin_port = htons(9527);
addrs.sin_addr.s_addr = htonl(INADDR_ANY);
sockfd = socket(AF_INET,SOCK_STREAM,0);
bind(sockfd,(struct sockaddr*)&addrs,sizeof(addrs));
printf("Bind success!\n fd is %d",sockfd);
listen(sockfd,128);
addrc_len = sizeof(addrc);
cfd = accept(sockfd,(struct sockaddr*)&addrc,&addrc_len);
if(cfd ==-1)
{
printf("accept fail");
exit(1);
}
printf("accept success!");
while(1)
{
ret = read(cfd,buf,sizeof(buf));
write(STDOUT_FILENO,buf,ret);
for(i = 0;i<ret;i++)
buf[i] = toupper(buf[i]);
write(cfd,buf,ret);
}
close(sockfd);
close(cfd);
return 0 ;
}
二、思路
`
总结
大家有什么问题或者建议可以一起交流,评论私信我都会一 一回复的,谢谢。(希望大家可以多多支持,手动doge)