/*
*TcpServer.c
*/
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<unistd.h>
#include<netinet/in.h>
#define SERVPORT 1888
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 5
#define BACKLOG 10
int main()
{
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int sockfd,client_fd;
char buf[MAXDATASIZE];
/* Create Socket*/
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1){
perror("socket error!");
exit(1);
}
/*Set sockaddr_in parameters*/
server_sockaddr.sin_family = AF_INET; //地址簇
server_sockaddr.sin_port = htons(SERVPORT); //端口号
server_sockaddr.sin_addr.s_addr = INADDR_ANY; //IP地址
bzero(&(server_sockaddr.sin_zero),8); //填充0,以保持和struct sockaddr一样大小
/* Bind*/
if(bind(sockfd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr))==-1) {
perror("Bind!");
exit(1);
}
/*Listen*/
if(listen(sockfd,BACKLOG) == -1){ //BACKLOG:队列中允许的请求数
perror("Listen");
exit(1);
}
printf("The server is started!\n");
/*Accept, Wait client*/
if((client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size))==-1){
perror("accept");
exit(1);
}
/*recv*/
if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){
perror("recv");
exit(1);
}
else
printf("Recv:%s\n",buf);
close(sockfd);
}
*TcpServer.c
*/
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<unistd.h>
#include<netinet/in.h>
#define SERVPORT 1888
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 5
#define BACKLOG 10
int main()
{
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int sockfd,client_fd;
char buf[MAXDATASIZE];
/* Create Socket*/
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1){
perror("socket error!");
exit(1);
}
/*Set sockaddr_in parameters*/
server_sockaddr.sin_family = AF_INET; //地址簇
server_sockaddr.sin_port = htons(SERVPORT); //端口号
server_sockaddr.sin_addr.s_addr = INADDR_ANY; //IP地址
bzero(&(server_sockaddr.sin_zero),8); //填充0,以保持和struct sockaddr一样大小
/* Bind*/
if(bind(sockfd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr))==-1) {
perror("Bind!");
exit(1);
}
/*Listen*/
if(listen(sockfd,BACKLOG) == -1){ //BACKLOG:队列中允许的请求数
perror("Listen");
exit(1);
}
printf("The server is started!\n");
/*Accept, Wait client*/
if((client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size))==-1){
perror("accept");
exit(1);
}
/*recv*/
if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){
perror("recv");
exit(1);
}
else
printf("Recv:%s\n",buf);
close(sockfd);
}