c编写服务器_C/C 代码编写

avatar
作者
猴君
阅读量:0

在C语言中,我们可以使用socket编程来创建一个服务器,以下是一个简单的TCP服务器的示例:

c编写服务器_C/C 代码编写(图片来源网络,侵删)
 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #define BUF_SIZE 1024 void error_handling(char *message); int main(int argc, char *argv[]) {     int serv_sock, clnt_sock;     char message[BUF_SIZE];     int str_len, i;     struct sockaddr_in serv_adr, clnt_adr;     socklen_t clnt_adr_sz;     if(argc!=2) {         printf("Usage : %s <port>\n", argv[0]);         exit(1);     }     serv_sock=socket(PF_INET, SOCK_STREAM, 0);     if(serv_sock==1)         error_handling("socket() error");     memset(&serv_adr, 0, sizeof(serv_adr));     serv_adr.sin_family=AF_INET;     serv_adr.sin_addr.s_addr=htonl(INADDR_ANY);     serv_adr.sin_port=htons(atoi(argv[1]));     if(bind(serv_sock, (struct sockaddr*) &serv_adr, sizeof(serv_adr))==1)         error_handling("bind() error");     if(listen(serv_sock, 5)==1)         error_handling("listen() error");     clnt_adr_sz=sizeof(clnt_adr);        for(i=0; i<5; i++)        {         clnt_sock=accept(serv_sock, (struct sockaddr*)&clnt_adr, &clnt_adr_sz);         if(clnt_sock==1)             error_handling("accept() error");         else              printf("Connected client %d \n", i+1);         while((str_len=read(clnt_sock, message, BUF_SIZE))!=0)             write(clnt_sock, message, str_len);         close(clnt_sock);     }     close(serv_sock);     return 0; } void error_handling(char *message) {     fputs(message, stderr);     fputc('\n', stderr);     exit(1); } 

这个服务器会监听指定的端口,当有客户端连接时,它会接收客户端发送的消息,并将消息原样返回给客户端。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!