18,356
社区成员
发帖
与我相关
我的任务
分享
#pragma pack(1)
struct Msg1{
BYTE num;
BYTE iden;
short len;
short avalia;
int path;
int pitch;
int roll;
}msg1;
msg1.num=0x00;
msg1.iden=0xb0;
msg1.len=htons(0x0012);
UpdateData();
if (m_pose==0)
{
msg1.avalia=htons(0x0000);
}
else
{
msg1.avalia=htons(0x0001);
}
msg1.path=htonl(0x12345678);
msg1.pitch=htonl(0x09876543);
msg1.roll=htonl(0x01100220);
char SendBuffer[18];
memcpy(SendBuffer,&msg1,sizeof(msg1));
sendto(m_socket,SendBuffer,18,0,
(SOCKADDR*)&addrTo,sizeof(SOCKADDR));
DWORD WINAPI CFistDlg::RecvProc(LPVOID lpParameter)
{
SOCKET sock=((RECVPARAM*)lpParameter)->sock;
HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
SOCKADDR_IN addrRecv;
int len = sizeof(SOCKADDR);
char recvBuf[100];
int recvRst;
CString recvStr;
while(TRUE)
{
recvRst = recvfrom(sock, recvBuf, 100, 0, (SOCKADDR*)&addrRecv, &len);
if (SOCKET_ERROR == recvRst)
{
break;
}
::PostMessage(hwnd, WM_RECVDATA, 0, (LPARAM)recvBuf);
}
return 0;
}
void CFistDlg::OnRecvData(WPARAM wParam,LPARAM lParam)
{
typedef struct AA
{
BYTE num;
BYTE iden;
short len;
short avalia;
int path;
int pitch;
int roll;
}aa;
AA *paa=(AA *)lParam;
SetDlgItemInt(IDC_EDIT_RECV,paa->num);
SetDlgItemInt(IDC_EDIT1,paa->iden);
SetDlgItemInt(IDC_EDIT2,ntohs(paa->len));
SetDlgItemInt(IDC_EDIT3,ntohs(paa->avalia));
SetDlgItemInt(IDC_EDIT4,ntohl(paa->path));
SetDlgItemInt(IDC_EDIT5,ntohl(paa->pitch));
SetDlgItemInt(IDC_EDIT6,ntohl(paa->roll));
}