server.c

来自「Time服务TCP客户机——服务器实现,linux下实现」· C语言 代码 · 共 47 行

C
47
字号
#define LISTENQ 1024
#define SA struct sockaddr

#include "curses.h"
#include "stdlib.h"
#include "stdio.h"
#include "errno.h"
#include "netdb.h"
#include "string.h"
#include "sys/time.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "memory.h"
#include <time.h>
/* Define bzero() as a macro if it's not in standard C library. */
#ifndef HAVE_BRZEO 
#define bzero(ptr,n) memset(ptr,0,n) 
#endif
#define	UNIXEPOCH	2208988800UL	/* UNIX epoch, in UCT secs	*/

int main(int argc,char * * argv)
{     unsigned int	alen;	
       time_t	now;
       	
	int msock,ssock;
	struct sockaddr_in servaddr;//服务器IP地址、端口信息
       struct sockaddr_in fsin;
 
	msock = socket(AF_INET,SOCK_STREAM,0);//创建套接字  
	bzero(&servaddr,sizeof(servaddr));   //初始化服务器信息及接受连接的地址信息
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);  
	servaddr.sin_port = htons(13);
	bind(msock,(SA *)&servaddr,sizeof(servaddr));//绑定套接字
       listen(msock,LISTENQ);

	while(1)
	{     alen = sizeof(fsin);
             ssock = accept(msock, (struct sockaddr *)&fsin, &alen);//接受响应
             (void) time(&now);
		now = htonl((unsigned long)(now + UNIXEPOCH));
		(void) write(ssock, (char *)&now, sizeof(now));//发送回应
}

}

⌨️ 快捷键说明

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