typedef struct
{
OVERLAPPED Overlapped;
WSABUF DataBuf;
CHAR Buffer[DATA_BUFSIZE];
DWORD BytesSEND;
DWORD BytesRECV;
} PER_IO_OPERATION_DATA, * LPPER_IO_OPERATION_DATA;struct tag_ReturnLogin
{
unsigned ret;
unsigned other;
};
tag_ReturnLogin TAGRETURN;
ZeroMemory(&(PerIoData->Overlapped), sizeof(OVERLAPPED));
strcpy(PerIoData->Buffer,(char*)&TAGRETURN);
PerIoData->DataBuf.len = sizeof(tag_ReturnLogin);
strcpy( PerIoData->DataBuf.buf, PerIoData->Buffer);
if (WSASend(PerHandleData->Socket, &(PerIoData->DataBuf), 1, &SendBytes, 0, &(PerIoData->Overlapped), NULL) == SOCKET_ERROR)
{
NC._PostToScreen("Send() failed with error :",GetLastError());
}客户端接收:
char *buffer;
buffer=new char[sizeof(tag_ReturnLogin)];
tag_ReturnLogin *LPTAGRL;
LPTAGRL=(struct tag_ReturnLogin *)buffer;
int i=LPTAGRL->ret;
int k=LPTAGRL->other;
客户端接收数据出错.
可能是类型转换,传递写错了但不知如何解决?
{
OVERLAPPED Overlapped;
WSABUF DataBuf;
CHAR Buffer[DATA_BUFSIZE];
DWORD BytesSEND;
DWORD BytesRECV;
} PER_IO_OPERATION_DATA, * LPPER_IO_OPERATION_DATA;struct tag_ReturnLogin
{
unsigned ret;
unsigned other;
};
tag_ReturnLogin TAGRETURN;
ZeroMemory(&(PerIoData->Overlapped), sizeof(OVERLAPPED));
strcpy(PerIoData->Buffer,(char*)&TAGRETURN);
PerIoData->DataBuf.len = sizeof(tag_ReturnLogin);
strcpy( PerIoData->DataBuf.buf, PerIoData->Buffer);
if (WSASend(PerHandleData->Socket, &(PerIoData->DataBuf), 1, &SendBytes, 0, &(PerIoData->Overlapped), NULL) == SOCKET_ERROR)
{
NC._PostToScreen("Send() failed with error :",GetLastError());
}客户端接收:
char *buffer;
buffer=new char[sizeof(tag_ReturnLogin)];
tag_ReturnLogin *LPTAGRL;
LPTAGRL=(struct tag_ReturnLogin *)buffer;
int i=LPTAGRL->ret;
int k=LPTAGRL->other;
客户端接收数据出错.
可能是类型转换,传递写错了但不知如何解决?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货