怎么将文件分包,一包一包发送,每包1K?求相关实例或者代码?
如何将文件分包,一包一包发送,每包1K???求相关实例或者代码????
如何将文件分包,一包一包发送,每包1K???求相关实例或者代码????
------解决思路----------------------
BYTE *pFileData; //文件读取后保存在这个指针指向的缓冲区内.
int len = 123456; //假设文件有这么大.
while(len>0)
{
int sendLen = 1024; //一次发1K
if(len < sendLen)//文件长度不足1K
{
sendLen = len;
}
send(sock, pFileData, len,0);
pFileData += sendLen; //移动起始发送位置
len -= sendLen; //减去已经发送字节.
}
当然, 你也可以边读取,边发送, 过程类似.
每次读取从文件读取1k, 然后发送, 再读取, 再发送.
------解决思路----------------------
他的代码已经足够你实现发大文件的功能了。
你对socket发送了解清楚了吗?你定义了一个包是1k,但是send()函数不一定会一次性把这1k数据发送成功。你说的一个包,可能要send多次。这样你如何判断你的一个包发送完成没有?
低下的tcp才不管你上面怎么分包,它就按字节处理。
所以你的分包需求很特殊。
如果只是发大文件,上述代码已经足够了
如何将文件分包,一包一包发送,每包1K???求相关实例或者代码????
------解决思路----------------------
BYTE *pFileData; //文件读取后保存在这个指针指向的缓冲区内.
int len = 123456; //假设文件有这么大.
while(len>0)
{
int sendLen = 1024; //一次发1K
if(len < sendLen)//文件长度不足1K
{
sendLen = len;
}
send(sock, pFileData, len,0);
pFileData += sendLen; //移动起始发送位置
len -= sendLen; //减去已经发送字节.
}
当然, 你也可以边读取,边发送, 过程类似.
每次读取从文件读取1k, 然后发送, 再读取, 再发送.
------解决思路----------------------
他的代码已经足够你实现发大文件的功能了。
你对socket发送了解清楚了吗?你定义了一个包是1k,但是send()函数不一定会一次性把这1k数据发送成功。你说的一个包,可能要send多次。这样你如何判断你的一个包发送完成没有?
低下的tcp才不管你上面怎么分包,它就按字节处理。
所以你的分包需求很特殊。
如果只是发大文件,上述代码已经足够了