📄 udgramsrv.c
字号:
/* * Daytime Server using datagram sockets (UDP) * * ./software/apdxA/daytime/u_dgram/udgramsrv.c * * mtj@cogitollc.com * */#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <time.h>#include <unistd.h>#define MAX_BUFFER 128#define DAYTIME_SERVER_PORT 45000int main ( void ){ int serverFd, fromlen, msglen; struct sockaddr_in servaddr, from; char timebuffer[MAX_BUFFER+1]; time_t currentTime; serverFd = socket(AF_INET, SOCK_DGRAM, 0); memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(DAYTIME_SERVER_PORT); bind(serverFd, (struct sockaddr *)&servaddr, sizeof(servaddr)); while ( 1 ) { fromlen = sizeof(from); msglen = recvfrom(serverFd, &timebuffer, MAX_BUFFER, 0, &from, &fromlen); if (msglen >= 0) { currentTime = time(NULL); snprintf(timebuffer, MAX_BUFFER, "%s\n", ctime(¤tTime)); sendto(serverFd, timebuffer, strlen(timebuffer), 0, (struct sockaddr *)&from, fromlen); currentTime = time(NULL); snprintf(timebuffer, MAX_BUFFER, "%s\n", ctime(¤tTime)); sendto(serverFd, timebuffer, strlen(timebuffer), 0, (struct sockaddr *)&from, fromlen); } }}/* * Copyright (c) 2002 Charles River Media. All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, is hereby granted without fee provided * that the following conditions are met: * * 1. Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * 2. Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * 3. Neither the name of Charles River Media nor the names of * its contributors may be used to endorse or promote products * derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY CHARLES RIVER MEDIA AND CONTRIBUTERS * 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CHARLES * RIVER MEDIA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARAY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -