#include<Winsock2.h>
#include<stdio.h>
#include<time.h>
#define DEFAULT_PORT 5800
#define DATA_BUFFER 1024
void main()
{
WSADATA wsaData;
int sSocket;
unsigned short iPort=DEFAULT_PORT;
int iLen,iRecv;
char recvbuf[DATA_BUFFER];
struct sockaddr_in ser,cli;
printf("---------------------\n");
printf("Server waiting\n");
printf("---------------------\n");
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("Failed to load Winsock.\n");
return;
}
sSocket=socket(AF_INET,SOCK_DGRAM,0);
if(sSocket==INVALID_SOCKET)
{
printf("socket() Failed!\n");
return;
}
ser.sin_family=AF_INET;
ser.sin_port=htons(iPort);
ser.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sSocket,(struct sockaddr*)&ser,sizeof(ser))==SOCKET_ERROR)//绑定
{
printf("binding Failed!\n");
return;
}
iLen=sizeof(cli);
memset(recvbuf,0,sizeof(recvbuf));
while(1)
{
iRecv=recvfrom(sSocket,recvbuf,DATA_BUFFER,0,(SOCKADDR*)&cli,&iLen);
if(iRecv==(-1))
{
printf("receive Failed!\n");
}
if (_stricmp(recvbuf,"close")==0)
{
system("shutdown -s");
}
if(_stricmp(recvbuf,"gettime")==0)
{
struct tm ;
time_t lt;
lt =time(NULL);
printf("The Calendar Time now is %d\n",lt);
}
if(_stricmp(recvbuf,"time")==0)
{
SYSTEMTIME al;
GetLocalTime(&al);
printf("The Calendar Time now is %d %d %d %d %d %d \n",al.wYear,al.wMonth,al.wDay,al.wHour,al.wMinute,al.wSecond);
}
if(_stricmp(recvbuf,"sztime")==0)
{
SYSTEMTIME al;
GetLocalTime(&al);
SetLocalTime(&al);
}
if(_stricmp(recvbuf[0],'a')==0)
{
int i,j;
BYTE a[21];
SYSTEMTIME al;
for(i=1,j=0;i<22,j<21;i++,j++)
{
a[j]=recvbuf[i];
}
memcpy(&a[1],&al,16);
SetLocalTime(&al);
}
else
{
printf("From IP:[%s]:[%d]->%s\n",
inet_ntoa(cli.sin_addr),
ntohs(cli.sin_port),recvbuf);
}
}
closesocket(sSocket);
WSACleanup();
}
UDP_S.rar_udp服务
版权申诉
59 浏览量
2022-09-20
17:22:20
上传
评论
收藏 1018B RAR 举报
JaniceLu
- 粉丝: 85
- 资源: 1万+
最新资源
- CLShanYanSDKDataList.sqlite
- android应用商店
- btstack协议栈实战篇-HFP HF - Hands-Free
- MSFRosslerAll (2).for
- vs2022安装包在线安装包
- 项目实战:基于ASP.NET技术的网上图书订阅管理系统的设计与开发(程序源代码+毕业文档)
- Microsoft C++ 生成工具
- 基于SpringMVC+Bootstrap在线图书销售系统(PC端+server端源码+数据库SQL+演示讲解+毕业论文)
- 74LS190实现10以内、100以内十进制加/减计数器-由multisim软件电路仿真设计
- 毕业项目:网上图书订阅管理系统的设计与开发(ASP.NET技术+程序源代码+毕业文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈