下面是一段TCP文件传输的c/c++代码,1,2,3,4句有什么作用?谢谢!!
CFilefile;if(!file.Open(m_strFilePath,CFile::modeRead)){AfxMessageBox("打开文件失败!");retu...
CFile file;
if(!file.Open(m_strFilePath, CFile::modeRead))
{
AfxMessageBox("打开文件失败!");
return FALSE;
}
char buffer[sizeof(long) * 2]; 。。。。。。。。。。。。。。。。。1
*(DWORD*)buffer = 0x100; .。。。。。。。。。。。。。。。。。2
*(DWORD*)(buffer + sizeof(long)) = file.GetLength(); .。。。。。。3
m_nFileLength = file.GetLength();
file.Close();
pSocket->Send(buffer, sizeof(long) * 2, 0); .。。。。。。。.。。。4
HANDLE hThread = CreateThread(NULL, 0U, SendThreadProc, this, 0, NULL);
return TRUE; 展开
if(!file.Open(m_strFilePath, CFile::modeRead))
{
AfxMessageBox("打开文件失败!");
return FALSE;
}
char buffer[sizeof(long) * 2]; 。。。。。。。。。。。。。。。。。1
*(DWORD*)buffer = 0x100; .。。。。。。。。。。。。。。。。。2
*(DWORD*)(buffer + sizeof(long)) = file.GetLength(); .。。。。。。3
m_nFileLength = file.GetLength();
file.Close();
pSocket->Send(buffer, sizeof(long) * 2, 0); .。。。。。。。.。。。4
HANDLE hThread = CreateThread(NULL, 0U, SendThreadProc, this, 0, NULL);
return TRUE; 展开
2个回答
展开全部
char buffer[sizeof(long) * 2];申请2个双字长度的内存,一般是8个字节。
*(DWORD*)buffer = 0x100;第一个双字长度的整型数用0x100初始化。
*(DWORD*)(buffer + sizeof(long)) = file.GetLength();这里buffer+4(暂且这么认为)就是第二个双字的地址,也就是用file的长度值初始化第二个双字。
pSocket->Send(buffer, sizeof(long) * 2, 0);将buffer里面的几个字节数据发送出去。
追问
追答
乱码很正常啊,你往里面放的是整型数,然后想用ascii码看当然不行了。至于数据是什么意思那是你的通信协议里面定义的,我就说不上来了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询