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 + -
显示快捷键?