server.c

来自「Client program for Chatting in Unix」· C语言 代码 · 共 50 行

C
50
字号
/* A simple server in the internet domain using TCP   The port number is passed as an argument */#include <stdio.h>#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h>void error(char *msg){    perror(msg);    exit(1);}int main(int argc, char *argv[]){     int sockfd, newsockfd, portno, clilen;     char buffer[256];     struct sockaddr_in serv_addr, cli_addr;     int n;     if (argc < 2) {         fprintf(stderr,"ERROR, no port provided\n");         exit(1);     }     sockfd = socket(AF_INET, SOCK_STREAM, 0);     if (sockfd < 0)         error("ERROR opening socket");     bzero((char *) &serv_addr, sizeof(serv_addr));     portno = atoi(argv[1]);     serv_addr.sin_family = AF_INET;     serv_addr.sin_addr.s_addr = INADDR_ANY;     serv_addr.sin_port = htons(portno);     if (bind(sockfd, (struct sockaddr *) &serv_addr,              sizeof(serv_addr)) < 0)               error("ERROR on binding");     listen(sockfd,5);     clilen = sizeof(cli_addr);     newsockfd = accept(sockfd,                  (struct sockaddr *) &cli_addr,                  &clilen);     if (newsockfd < 0)           error("ERROR on accept");     bzero(buffer,256);     n = read(newsockfd,buffer,255);     if (n < 0) error("ERROR reading from socket");     printf("Here is the message: %s\n",buffer);     n = write(newsockfd,"I got your message",18);     if (n < 0) error("ERROR writing to socket");     return 0; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?