//服务器端口号为161
#define DEFAULT_PORT 161
//缓冲区长度
#define DATA_BUFFER 1024
void CMServerDlg::sendUdp()
{
WSADATA wsaData;
SOCKET sClient;
int iPort=DEFAULT_PORT;
//服务器地址长度
int iLen;
//接收数据的缓冲
int iSend;
int iRecv;
//要发送给服务器的信息
CString sysLog;
sysLog.Format("<12>%s 127.0.0.1 mserver 测试",DateFormat());
//接收数据的缓冲区
char recv_buf[DATA_BUFFER];
//服务器端地址
struct sockaddr_in ser;
memset(recv_buf,0,sizeof(recv_buf));
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("Failed to load Winsock.\n");
return;
}
//建立服务器端地址
ser.sin_family=AF_INET;
ser.sin_port=htons(iPort);
ser.sin_addr.s_addr=inet_addr("127.0.0.1");
//建立客户端数据报套接口
sClient=socket(AF_INET,SOCK_DGRAM,0);
if(sClient==INVALID_SOCKET)
{
printf("socket()Failed:%d\n",WSAGetLastError());
return;
}
iLen=sizeof(ser);
//向服务器发送数据
iSend=sendto(sClient,sysLog,sizeof(sysLog),0,(struct sockaddr*)&ser,iLen);
if(iSend==SOCKET_ERROR)
{
printf("sendto()Failed:%d\n",WSAGetLastError());
return;
}
else if(iSend==0)
return;
else
printf("sendto()succeeded.\n");
}
CString CMServerDlg::DateFormat()
{
//获取gmt时间
CString szGmtTime;
time_t rawTime;
struct tm* timeInfo;
char szTemp[30]={0};
time(&rawTime);
timeInfo = gmtime(&rawTime);
strftime(szTemp,sizeof(szTemp),"%a, %d %b %Y %H:%M:%S GMT",timeInfo);
szGmtTime =szTemp;
int npos =szGmtTime.Find(",");
szGmtTime =szGmtTime.Right(szGmtTime.GetLength()-npos-2);
npos =szGmtTime.Find("GMT");
szGmtTime =szGmtTime.Left(npos-1);
return szGmtTime;
}
c++实现SysLogServer发送端
最新推荐文章于 2024-08-03 14:07:45 发布