📄 mulsvr.cpp
字号:
// MulSvr.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
//#include <winsock2.h>
//#include <ws2tcpip.h>
#include <stdio.h>
#include "CFrame.h"
#define MC_ADDR "234.5.6.7"
#define MC_PORT 10000
#define MAXLEN 1024
void FillQuickStrcData(QuickDataStrc &tmpQuickData)
{
time_t t;
time( &t);
struct tm *st;
st = localtime( &t);
ACE_CDR::ULongLong sTmp;
sTmp = (st->tm_year+1900) *10000000000 + (st->tm_mon+1)*100000000 +(st->tm_mday)*1000000 +
(st->tm_hour)*10000 + (st->tm_min)*100 + st->tm_sec;
XTimeStamp stTmp(st->tm_year+1900,st->tm_mon+1,st->tm_mday,st->tm_hour,st->tm_min,st->tm_sec);
tmpQuickData.dwInternal = t % 65536;
tmpQuickData.tTimeStamp = stTmp;
tmpQuickData.dwClosePrice = t % 12500;
tmpQuickData.dwOpenPrice = t%12000;
tmpQuickData.dwHighPrice = t%12345;
tmpQuickData.dwlowPrice = t%12321;
tmpQuickData.dwNewPrice = t%12211;
sTmp = (st->tm_hour)*10000 + (st->tm_min)*100 + st->tm_sec;
tmpQuickData.dwTradeTime = (ACE_CDR::ULong)t;
tmpQuickData.bFlag1 = 1;
tmpQuickData.bBidPriceLevel =3;
tmpQuickData.dwBidPx[0] = t %11234;
tmpQuickData.dwBidPx[1] = t %11345;
tmpQuickData.dwBidPx[2] = t %14532;
tmpQuickData.llBidSize[0] = t%23456;
tmpQuickData.llBidSize[1] = t%32456;
tmpQuickData.llBidSize[2] = t%43567;
tmpQuickData.bSallBidPriceCount =3;
tmpQuickData.dwOfferPx[0] = t% 45673;
tmpQuickData.dwOfferPx[1] = t% 56783;
tmpQuickData.dwOfferPx[2] = t% 67894;
tmpQuickData.llOfferSize[0] = t%34565;
tmpQuickData.llOfferSize[1] = t%56783;
tmpQuickData.llOfferSize[2] = t%98076;
tmpQuickData.llTradeTotal = t % 5678932;
}
int _tmain(int argc, _TCHAR* argv[])
{
SOCKET s;
SOCKADDR_IN mcAddr;
int nMcLen;
int n;
//char buf[MAXLEN];
WSADATA wsaData;
int nErr;
ACE_CDR::Char * pchDataBuf = NULL;
ACE_CDR::UShort ushLen;
ACE::init();
if(WSAStartup(0x0202, &wsaData) != 0)
{
//ReportErr("WSAStartup(..)");
return -1;
};
s = socket(AF_INET, SOCK_DGRAM, 0);
if(s == INVALID_SOCKET)
{
//WSAReportErr("socket(...)");
WSACleanup();
return -1;
}
mcAddr.sin_family = AF_INET;
mcAddr.sin_addr.s_addr = inet_addr(MC_ADDR);
mcAddr.sin_port = htons(MC_PORT);
nMcLen = sizeof(mcAddr);
n = 0;
while(1)
{
CCreateFrame frame;
QuickDataStrc tmpQuickData;
//填充快照数据结构
FillQuickStrcData(tmpQuickData);
//根据新的数据形成新的快照数据帧
if (!frame.CreateNewsFrm (&tmpQuickData))
return -1;
//发送新的数据帧
pchDataBuf = frame.pFrmData->GetDataBuf ();
ushLen = frame.pFrmData->GetDataLen();
Sleep(1000);
//sprintf(buf, "This send to multicast group %s. seq: %d", MC_ADDR, n++);
nErr = sendto(s, pchDataBuf, ushLen, 0, (struct sockaddr*)&mcAddr, nMcLen);
if(nErr == SOCKET_ERROR)
{
//WSAReportErr("sendto(...)");
break;
}
//printf("%s\n", buf);
}
WSACleanup();
ACE::fini();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -