简单的UDP循环服务器:时间服务器
来源:互联网 发布:js获取元素css样式 编辑:程序博客网 时间:2024/05/22 21:44
服务端:
#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <time.h>#include <stdio.h>#include <string.h>#define BUFFLEN 1024#define SERVER_PORT 8888int main(int argc, char *argv[]){int s;struct sockaddr_in local, to;time_t now;char buff[BUFFLEN];int n = 0;int len = sizeof(to);s = socket(AF_INET, SOCK_DGRAM, 0);memset(&local, 0, sizeof(local));local.sin_family = AF_INET;local.sin_addr.s_addr = htonl(INADDR_ANY);local.sin_port = htons(SERVER_PORT);int err = bind(s, (struct sockaddr*)&local, sizeof(local));while(1){memset(buff, 0, BUFFLEN);n = recvfrom(s, buff, BUFFLEN, 0, (struct sockaddr*)&to, &len);if (n >0 && !strncmp(buff, "TIME", 4)){memset(buff, 0, BUFFLEN);now = time(NULL);sprintf(buff, "%24s\r\n", ctime(&now));sendto(s, buff, strlen(buff), 0, (struct sockadrr*)&to, len);}}close(s);return 0;}
客户端:
#include <sys/types.h>#include <sys/socket.h>#include <time.h>#include <string.h>#include <stdio.h>#include <netinet/in.h>#define BUFFLEN 1024#define SERVER_PORT 8888int main(int argc, char *argv[]){int s;struct sockaddr_in server;time_t now;char buff[BUFFLEN];int n = 0;int len = 0;s = socket(AF_INET, SOCK_DGRAM, 0);memset(&server, 0, sizeof(server));server.sin_family = AF_INET;server.sin_addr.s_addr = htonl(INADDR_ANY);server.sin_port = htons(SERVER_PORT);memset(buff, 0, BUFFLEN);strcpy(buff, "TIME");sendto(s, buff, strlen(buff), 0, (struct sockadrr*)&server, sizeof(server));memset(buff, 0, BUFFLEN);len = sizeof(server);n = recvfrom(s, buff, BUFFLEN, 0, (struct sockaddr*)&server, &len);if (n > 0){printf("TIME:%s\n", buff);}close(s);return 0;}
- 简单的UDP循环服务器:时间服务器
- Python--UDP时间服务器
- UDP简单服务器
- 简单的,使用套接字实UDP通信(循环服务器)
- TCP循环服务器 UDP循环服务器 TCP并发服务器
- 使用Reactor框架的简单udp服务器
- udp服务器_简单的控制台程序
- 一种简单的UDP服务器框架
- 简单的python UDP服务器客户端连接
- 单用户UDP服务器的简单实现
- UDP服务器、客户端的简单实现
- 最简单的时间服务器
- 简单的时间服务器程序
- 简单TCP 循环服务器
- C#的UDP服务器
- 简单的时间/日期客户端&服务器程序
- 简单的无连接的udp服务器和客户端
- 重温WIN32 API ------ 一个简单的UDP服务器类
- 写了个存储过程获得table的完整定义
- C++线性表操作
- 网络子系统33_网桥设备的配置更新
- hibernate之HQL之group by子句
- 利用dbms_metadata.get_ddl查看DDL语句(原创)
- 简单的UDP循环服务器:时间服务器
- Harris角点检测
- Linux API -- open 设置操作属性O_APPEND时的那点小事
- hdu 1224 最长路
- Java反射之Constructor(一)
- 树状数组总结
- hibernate之HQL实体更新与删除
- 大规模超文本网络搜索引擎解析 [ The Anatomy of a Large-Scale Hypertextual Web Search Engine ]
- windows迁移linux,在文件上遇到的问题