⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.c

📁 cs89000的驱动编写。很有助于新手学习。本人看了以后觉得受益非浅。在此与大家分享。希望有帮助。
💻 C
字号:
#include <stdio.h>#include <sys/socket.h>#include <unistd.h>#include <sys/types.h>#include <netinet/in.h>#include <stdlib.h>#include <time.h>#define SERVER_PORT 12345 // define the defualt connect port id#define LENGTH_OF_LISTEN_QUEUE 10 //length of listen queue in server#define BUFFER_SIZE 255#define WELCOME_MESSAGE "welcome to connect the server. "int main(int argc, char **argv){     printf("The beginning of main function.\n");       int servfd,clifd;       struct sockaddr_in servaddr,cliaddr;       if ((servfd = socket(AF_INET,SOCK_STREAM,0)) < 0)       {              printf("create socket error!\n");              exit(1);       }       bzero(&servaddr,sizeof(servaddr));       servaddr.sin_family = AF_INET;       servaddr.sin_port = htons(SERVER_PORT);       servaddr.sin_addr.s_addr = htons(INADDR_ANY);       if (bind(servfd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)       {              printf("bind to port %d failure!\n",SERVER_PORT);              exit(1);       }        if (listen(servfd,LENGTH_OF_LISTEN_QUEUE) < 0)       {              printf("call listen failure!\n");              exit(1);       }       //server loop will nerver exit unless any body kill the process	while(1){		      printf("The beginning of the circle.\n");              char buf[BUFFER_SIZE];              long timestamp;              socklen_t length = sizeof(cliaddr);			  printf("before accept function .\n");              clifd = accept(servfd,(struct sockaddr*)&cliaddr,&length);			  printf("after accept function.\n");              if (clifd < 0)              {                     printf("error comes when call accept!\n");                     //break;			return 1;              }              strcpy(buf,WELCOME_MESSAGE);              //inet_ntop(INET_ADDRSTRLEN,cliaddr.sin_addr,buf,BUFFER_SIZE);              printf("from client,IP:%s,Port:%d\n",inet_ntoa(cliaddr.sin_addr),ntohs(cliaddr.sin_port));              timestamp = time(NULL);              strcat(buf,"timestamp in server:");              strcat(buf,ctime(&timestamp));              send(clifd,buf,BUFFER_SIZE,0);              close(clifd);           	}       close(servfd);       return 0;}

⌨️ 快捷键说明

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