用Socket传输时一次只能传一定的数据,我想将传输的数据放到一个结构体当中,然后分
批传输,每次1024个字节
Send:
CSocket sockRecv;
DATA Data;
DWORD dw;
DWORD dwRead=0;
while (dwRead<sizeof(INFO))
{
if(dwRead<sizeof(DATA)-1024)
dw=1024;
else
dw=sizeof(DATA)-dwRead;
sockRecv.Send(&Data+dwRead,dw);
dwRead+=dw;
}
sockRecv.Send(&Data+dwRead,ShareMemory-dwRead);
Receive: CSocket sockClient;
DATA Data;
DWORD dw;
DWORD dwRead=0;
while (dwRead<sizeof(DATA)-1024)
{
if(dwRead<sizeof(DATA)-1024)
dw=1024;
else
dw=sizeof(DATA)-dwRead;
sockClient.Receive(&Data+dwRead,dw);
dwRead+=dw;
}
可是这样每次只能接收前面一段数据,后面的都接收不到,很可能结构体不能够这样读地址吧?请高手指教是什么原因,万分感谢!
批传输,每次1024个字节
Send:
CSocket sockRecv;
DATA Data;
DWORD dw;
DWORD dwRead=0;
while (dwRead<sizeof(INFO))
{
if(dwRead<sizeof(DATA)-1024)
dw=1024;
else
dw=sizeof(DATA)-dwRead;
sockRecv.Send(&Data+dwRead,dw);
dwRead+=dw;
}
sockRecv.Send(&Data+dwRead,ShareMemory-dwRead);
Receive: CSocket sockClient;
DATA Data;
DWORD dw;
DWORD dwRead=0;
while (dwRead<sizeof(DATA)-1024)
{
if(dwRead<sizeof(DATA)-1024)
dw=1024;
else
dw=sizeof(DATA)-dwRead;
sockClient.Receive(&Data+dwRead,dw);
dwRead+=dw;
}
可是这样每次只能接收前面一段数据,后面的都接收不到,很可能结构体不能够这样读地址吧?请高手指教是什么原因,万分感谢!
sizeof(DATA) = ?最基本的问题,你的程序中如果sizeof(DATA) = 1024, 什么都读不到。程序基本都有问题。
dw=1024;
else
dw=sizeof(DATA)-dwRead;
sockClient.Receive(&Data+dwRead,dw);
dwRead+=dw;///////////////////////////////////////////////////////////// dw=sizeof(DATA)-dwRead;
dwRead=sockClient.Receive(&Data+dwRead,dw);