18,363
社区成员




typedef struct _data_packet {
int packetlen;
char databuf[1];
}data_packet, *pdata_packet;
//server
strcpy(message,"X=1366");
length=strlen(message) + sizeof(data_packet);
pdata_packet sdata = (pdata_packet)malloc(length);
sdata->packetlen = length;
strcpy(sdata->packetlen, message);
if (send(*m_socket,sdata,length,0)==SOCKET_ERROR )
{
AfxMessageBox("无法发送屏幕分辨率数据");
return 0;
}
//client
pdata_packet rdata;
int ret,packetlen, readlen = 0;
ret = recv(m_socket,&packetlen,4,0);
if(ret != SOCKET_ERROR) {
rdata = (pdata_packet)malloc(packetlen);
rdata->packetlen = packetlen;
readlen += ret;
while(readlen <= packetlen) {
ret = recv(m_socket, (char *)rdata + readlen, packlen - readlen, 0);
if(ret != SOCKET_ERROR)readlen += ret;
else {
AfxMessageBox("接收错误");
closesocket(m_socket);
return false;
}
}
}
typedef struct DataPacket
{
char szHead[2];
USHORT usID;
char cCmdType;
USHORT usLength;
char szData[MAX_DATA_LENG];
char szCRC[2];
char szTail[2];
DataPacket()
{
*szHead = 0x00;
*(szHead +1) = 0x00;
usID = 0;
cCmdType = 0x00;
memset(szData,0,MAX_DATA_LENG);
*szCRC = 0x00;
*(szCRC + 1) = 0x00;
*szTail = 0x00;
*(szTail + 1) = 0x00;
}
}DATAPACKET ,*PDATAPACKET;
int length;
char head[6];
char message[1001];
char str[1006];
strcpy(message,"X=1366");
length=strlen(message);
itoa(length,head,10);
for (int i=strlen(head);i<5;i++)
{
head[i]='#';
}
head[5]='\0';
strcpy(str,head);
strcat(str,message);
str[length+5]='\0';
if (send(*m_socket,str,length+5,0)==SOCKET_ERROR )
{
AfxMessageBox("无法发送屏幕分辨率数据");
return 0;
}
strcpy(message,"Y=766");
length=strlen(message);
itoa(length,head,10);
for (int i=strlen(head);i<5;i++)
{
head[i]='#';
}
head[5]='\0';
strcpy(str,head);
strcat(str,message);
str[length+5]='\0';
if (send(*m_socket,str,length+5,0)==SOCKET_ERROR )
{
AfxMessageBox("无法发送屏幕分辨率数据");
return 0;
}
char head[6];
char text[1001];
int length;
if (recv(m_socket,head,5,0)==SOCKET_ERROR)
{
AfxMessageBox("接收错误");
return false;
}
head[5]='\0';
length=atoi(head);
if (recv(m_socket,text,length,0)==SOCKET_ERROR)
{
AfxMessageBox("接收错误");
return false;
}
text[length]='\0';
AfxMessageBox(text);
if (recv(m_socket,head,5,0)==SOCKET_ERROR)
{
AfxMessageBox("接收错误");
return false;
}
head[5]='\0';
length=atoi(head);
if (recv(m_socket,text,length,0)==SOCKET_ERROR)
{
AfxMessageBox("接收错误");
return false;
}
text[length]='\0';
AfxMessageBox(text);