struct FILEINFO
{
ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
};char recvBuf[1024];
memset(recvBuf,0,1024);
retval=recvfrom(m_DataSocket,recvBuf,1024,0,(SOCKADDR*)&addrFrom,&len);
sendto(m_FileSendSocket,(char *)&g_FileInfo,sizeof(FILEINFO),0,(LPSOCKADDR)&addrTo,sizeof(SOCKADDR));
为什么接受的时候数据不正确呢?如果岸上面的结构体发送接受到"?"结构体里面的成员换个位置:
struct FILEINFO
{
// ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
ULONGLONG FileLen;//8080
};将FileLen放在其他位置,接受的都是第一个数组的值,为什么啊?急死了,搞一天都不行,另外将他们三个格式化到cstring中的时候除非将FileLen放在最后,不然放在最后的数组就会是NULL
{
ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
};char recvBuf[1024];
memset(recvBuf,0,1024);
retval=recvfrom(m_DataSocket,recvBuf,1024,0,(SOCKADDR*)&addrFrom,&len);
sendto(m_FileSendSocket,(char *)&g_FileInfo,sizeof(FILEINFO),0,(LPSOCKADDR)&addrTo,sizeof(SOCKADDR));
为什么接受的时候数据不正确呢?如果岸上面的结构体发送接受到"?"结构体里面的成员换个位置:
struct FILEINFO
{
// ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
ULONGLONG FileLen;//8080
};将FileLen放在其他位置,接受的都是第一个数组的值,为什么啊?急死了,搞一天都不行,另外将他们三个格式化到cstring中的时候除非将FileLen放在最后,不然放在最后的数组就会是NULL
receive有没有成功?
g_fineinfo内容是什么
struct FILEINFO
{
ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
};
红色的就是随他们付的值,接受的结果我谢了,就上面的乱七八糟的,我原来发结构体中只有一个字符数组和一个ULON长度可以,这次发两个字符数组就发生这样的错误了
#pragma pack(1)struct FILEINFO
{
ULONGLONG FileLen;//8080
char FileName[100];//"win.rar"
char ask[44]; //"I can play"
};