首先搭一个初级服务器需要配置一个服务器和一个客户端
客户端:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <string.h>
#define PORT 1234
int main()
{
int sockfd,clifd;
struct sockaddr_in addr,caddr;
int ret;
int len;
char buf[100];
int num;
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd < 0)
{
printf("socket error!\n");
exit(1);
}
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr("10.10.74.45");//htonl(INADDR_ANY);
ret = connect(sockfd, (struct sockaddr *)&addr,sizeof(struct sockaddr));
if(ret < 0)
{
printf("connect error!\n");
exit(1);
}
ret = send(sockfd, "hello world ",20, 0);
if(ret < 0)
{
printf("send error!\n");
exit(1);
}
close(sockfd);
return 0;
}
服务器:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <string.h>
#define PORT 1234
int main()
{
int sockfd,clifd;
struct sockaddr_in addr,caddr;
int ret;
int len;
char buf[100];
int num;
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd < 0)
{
printf("socket error!\n");
exit(1);
}
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr("10.10.74.100");//htonl(INADDR_ANY);
ret = bind(sockfd,(struct sockaddr *)&addr ,sizeof(addr));
if(ret < 0)
{
printf("bind error!\n");
exit(1);
}
ret = listen(sockfd,5);
if(ret < 0)
{
printf("listen error!\n");
exit(1);
}
len = sizeof(struct sockaddr);
clifd = accept(sockfd, (struct sockaddr *)&caddr,&len);
if(clifd < 0)
{
printf("accept error!\n");
exit(1);
}
num = recv(clifd, buf, sizeof(buf),0);
if(num< 0)
{
printf("recv error!\n");
exit(1);
}
buf[num] ='\0';
printf("recv = %s\n",buf);
close(clifd);
close(sockfd);
return 0;
}