📄 addser.c
字号:
//相加服务器
//接收客户端发来的两个数字,进行相加运算
//
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define SERVER_PORT 3254
#define MAX 10
#define MAX_BUF 1024
int main(int argc,char ** argv)
{
int sockfd,client_fd;
int len;
int i;
int num1,num2;
char buf[MAX_BUF+1];
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
/*建立套接字*/
if((sockfd = socket(AF_INEF,SOCK_STREAM,0)) == -1)
{
perror("AddrSerer:socket creat error!\n");
exit(1);
}
else
{
printf("AddrServer:Server socket created!\n");
}
bzero(my_addr,sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(SERVER_PORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
/*绑定*/
if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr)) == -1)
{
perror("AddServer:bind error!\n");
exit(1);
}
else
{
printf("AddServer:binded!\n");
}
/*监听*/
if(listen(sockfd,MAX) == -1)
{
perror("AddServer:listen error!\n");
exit(1);
}
else
{
printf("AddServer:begin listened!\n");
}
while(1)
{
len = sizeof(struct sockaddr);
if((slient_fd = accept(sockfd,(struct sockaddr*)&remote_addr,&len)) == -1)
{
perror("AddServer:accept error!\n");
exit(1);
}
else
{
printf("AddServer:Server got connetion from %s port %d socket %d \n",
inet_ntoa(remote_addr.sin_addr),
ntohs(remote_addr.sin_port),
client_fd);
}
int result = 0;
char temp[MAX_BUF+1];
/*从客户机端接收数据*/
bzero(buf,MAX_BUF+1);
len = recv(client_fd,buf.MAX_BUF,0);
if(len > 0)
{
/*从收到的数据中分离两个数字*/
num1 = atoi(&buf[0]);
for(i = 0;i<MAX_BUF;i++)
{
if(buf[i] == '@')
{
break;
}
}
num2 = atoi(&buf[i+1]);
printf("AddServer:successfully received!\n");
}
else
{
perror("AddServer:receive failed!\n");
exit(1);
}
/*将计算结果发给客户机端*/
bzero(buf,MAX_BUF+1);
result = num1 + num2;
sprintf(buf,"%s%d","AddServer@",result);
len = send(client_fd,buf,strlen(buf),0);
if(len<0)
{
printf("AddServer:send massage failed!\n");
exit(1);
}
else
{
printf("AddServer:Send add result successfully!\n");
}
}
close(sockfd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -