下面是一段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;
展开
 我来答
小兆86
推荐于2016-01-06 · TA获得超过802个赞
知道小有建树答主
回答量:990
采纳率:25%
帮助的人:872万
展开全部
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里面的几个字节数据发送出去。
追问

谢谢您的回复。但是经过调试,buffer字符数组的元素是下面的图片这样的。好像buffer的元素有些是乱码(或者是没有赋值),传递buffer到底有什么用?是告诉接收方什么信息吗??如果是,到底是什么信息?

追答
乱码很正常啊,你往里面放的是整型数,然后想用ascii码看当然不行了。至于数据是什么意思那是你的通信协议里面定义的,我就说不上来了。
百度网友de1fda3
2014-10-29 · TA获得超过331个赞
知道答主
回答量:127
采纳率:0%
帮助的人:78.9万
展开全部
1:申请了sizeof(long) * 2这个长度的内存
2:申请的内存开始部分赋值了0x100
3:偏移了sizeof(long)之后再赋值file.GetLength()
4:把申请的内存中的内存发出去
追问
非常感谢您的回复!!!谢谢!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式