c++实现SysLogServer发送端

//服务器端口号为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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值