伪代码如下
Server
while(true)
{
recv(buf,..);
if(buf=="end")
{
break;
}
else
{
fwrite();
}
}
Client
while(!feof(fp)
{
fread(buf,...);
send(socket,..);
}
小文件可以完整接受,但大的文件就会小1-2k
怀疑是粘包或者是接收端部分数据没有接收到
麻烦各位给指点下
Server
while(true)
{
recv(buf,..);
if(buf=="end")
{
break;
}
else
{
fwrite();
}
}
Client
while(!feof(fp)
{
fread(buf,...);
send(socket,..);
}
小文件可以完整接受,但大的文件就会小1-2k
怀疑是粘包或者是接收端部分数据没有接收到
麻烦各位给指点下
解决方案 »
- 关于RTP的简单问题,大家应该都知道!
- DEFINE_GUID宏里面的1是什么意思?有什么用?
- 各位兄弟,谁能帮我完善一下代码,不胜感激,要求对Hook有点了解的朋友。
- 关于static text 的问题
- CButtonST中图标的显示模式,,UP有分~~~~~~~~~~~~
- 分割窗口(上下窗口), 如何在mainFrame窗口大小改变时, 改变上窗口而不是下窗口的大小(调整分割条可以改变上下窗口的大小)
- 怎样用MFC的TAB CONTRAL控件?谁能告诉我?
- 请教一个关于CMFCPropertyGridCtrl的问题
- 请问用哪个软件做*.chm文件好,在哪儿下载?
- 一个很奇怪的问题,关于自画按钮~~~~
- 界面美化
- 如何在属性表单中初始话所有的属性页
2、大的文件是多大?
3、什么要的网络条件,如果是局域网的话,丢包的可能性不大 ,你使用抓包软件抓包看看
4、最好写个日志来进行分析。
请问一下如何开发基于蓝牙的Winodws PC 程序与手机等设备传输数据:
1、开发环境要求,Winsock是否可以满足了,与传统的网络编程有何区别,
2、蓝牙各种协议栈是否会带来兼容性问题。。
3、通过虚礼串口实现和通过Winsock实现比较谢谢!!!
明白了,首先你的SEND没有重发和错误处理机制,其次,你对发送缓冲没有设置大小,致使发送过大时,累积几次可能造成发送的BUFFER BLOCK错误。
首先确认重发机制,然后,据说 不要使用feof,使用文件length判断是否发送完成。
正解 send函数,一定要判断,是否成功。当系统的缓存区被你塞满的时候,就会失败,你需要重新发,直到成功。send函数,并不是把数据直接发到对方,而是先发到系统缓存区,由操作系统负责真正发送,其它送速度跟网速,硬件环境有关。