首先定义两个结构体:
struct UdpData
{
SOCKET sockUdp;
SOCKADDR_IN addrUdp;
};
struct ScanUdpData
{
short* iTotalY;
long* lTotalX;
UdpData* udpData;
int callNum; //udpThread收数据的次数
pData = new UdpData; //注意:此处要new一个UdpData,否则程序出现Access Violation错误!!
pData->sockUdp = sockUdp;
pData->addrUdp = addrUdp;
pScanUdpData = new ScanUdpData;
pScanUdpData->udpData = pData; //将new的pData赋值给udpData
//iTotalY、lTotalX存储所有接收到的数据
short* iTotalY = (short*)malloc(MAX_DATA_LEN*sizeof(short));
long* lTotalX = (long*)malloc(MAX_DATA_LEN*sizeof(long));
memset(iTotalY, 0, MAX_DATA_LEN*sizeof(short));
memset(lTotalX, 0, MAX_DATA_LEN*sizeof(long));
pScanUdpData->iTotalY = iTotalY;
pScanUdpData->lTotalX = lTotalX;
struct UdpData
{
SOCKET sockUdp;
SOCKADDR_IN addrUdp;
};
struct ScanUdpData
{
short* iTotalY;
long* lTotalX;
UdpData* udpData;
int callNum; //udpThread收数据的次数
};
pData = new UdpData; //注意:此处要new一个UdpData,否则程序出现Access Violation错误!!
pData->sockUdp = sockUdp;
pData->addrUdp = addrUdp;
pScanUdpData = new ScanUdpData;
pScanUdpData->udpData = pData; //将new的pData赋值给udpData
//iTotalY、lTotalX存储所有接收到的数据
short* iTotalY = (short*)malloc(MAX_DATA_LEN*sizeof(short));
long* lTotalX = (long*)malloc(MAX_DATA_LEN*sizeof(long));
memset(iTotalY, 0, MAX_DATA_LEN*sizeof(short));
memset(lTotalX, 0, MAX_DATA_LEN*sizeof(long));
pScanUdpData->iTotalY = iTotalY;
pScanUdpData->lTotalX = lTotalX;
pScanUdpData->callNum = 0;