socket传送文件问题,sendto和send一次可以发多大的数据?recv和recvfrom一次可以接收多少数据?

cen_jin_long 2008-03-12 12:06:32
比如我有一个100M的文件?
send/sendto一次可以发多少?
而接收一次可以接收多少?
...全文
1777 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyangzhongmin 2008-03-19
  • 打赏
  • 举报
回复
应该要这样发,边从文件中取出数据边发送就可以了,
zwl_19851220 2008-03-14
  • 打赏
  • 举报
回复
send 是用于面向连接的套接字(TCP SOCKET)
sendto 用于面向数据包的套接字(UDP SOCKET)
cen_jin_long 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 arong1234 的回复:]
suppose 数据在buffer内,长度为length
[code=C++]
int pos =0;
int result
while(pos < length)
{
result = send(sd, buffer+pos, length -pos,0);
if(result > 0)
{
pos += result;
}else{// <=0就是失败
break;
};
}

[/code]
[/Quote]

榮哥啊,實在不明白,發送的Buffer + pos。是已經發送了的。

這到低怎麼回事。對文件發送真是不明白。
Torch009 2008-03-14
  • 打赏
  • 举报
回复
你的头像很恶心
cen_jin_long 2008-03-14
  • 打赏
  • 举报
回复

send 它也是要这样断送吗?发送多少个?然后继续发?
琴乐音 2008-03-14
  • 打赏
  • 举报
回复
recv不是你设置多少buffer就能接到多少的 每次发送和接收的数据大小都不固定,recv返回值就是用来判断接收到了多大。
通常都是用循环还接收, 直到接收完整为止。
cen_jin_long 2008-03-14
  • 打赏
  • 举报
回复

我天生愚钝。

看不明白。

传输文件真的不明白。

求助求助!!!

阿荣兄弟,给QQ我。我要加你。打扰一下都要的了。
lin_style 2008-03-14
  • 打赏
  • 举报
回复
。。楼主是想问MTU吧。。
arong1234 2008-03-14
  • 打赏
  • 举报
回复
传文件的代码是一样的啊?你只要读到内存不就是在缓冲区了么?
arong1234 2008-03-14
  • 打赏
  • 举报
回复
suppose 数据在buffer内,长度为length
[code=C++]
int pos =0;
int result
while(pos < length)
{
result = send(sd, buffer+pos, length -pos,0);
if(result > 0)
{
pos += result;
}else{//<=0就是失败
break;
};
}

[/code]
僵哥 2008-03-14
  • 打赏
  • 举报
回复
简单一点,每次读取部分数据,如果是TCP,个人建议使用64KB~4MB为大小从文件读取出来,然后进行send,完了(Overlapped方式,建议以完成通知为主,但是可以保留5到10个未决分片)再按该大小读取出来继续发送,发送完成为止,这样子相对来说,即使网络分网允许为64KB,那也可以达到相当高的利用率,并且也不至于过分由于网络速度慢,而把文件加载到内存后过多地非必要性地占用内存资源。对于UDP,这里就不再进行更多的建议,一切从简单开始。
cen_jin_long 2008-03-14
  • 打赏
  • 举报
回复

但现在想知道传送文件的方法。
  • 打赏
  • 举报
回复
你需要一本《TCP/IP详解》看看
然后一本window或者Unix网络编程的书
cen_jin_long 2008-03-13
  • 打赏
  • 举报
回复

If no error occurs, this function returns the total number of bytes sent,

这样哦, 发送多少个。
cen_jin_long 2008-03-13
  • 打赏
  • 举报
回复

你们是不是不告诉我啊,至少也写一大大段代码给我拍一下照照。

不然全部把你们拍照晒网!

呵呵。

ZiSheng 2008-03-13
  • 打赏
  • 举报
回复
兄弟,自己动手丰衣足食.
mr.zhoux 2008-03-13
  • 打赏
  • 举报
回复
冠西,你又调皮了... vckbase上找吧..
arong1234 2008-03-13
  • 打赏
  • 举报
回复
无论你尝试发送多少,send都可能发送少于这个字节数,因此TCP编程布应该依赖于发送次数,而是要确认到底发送了多少字节,从而知道下次该从哪开始继续发,看看send得返回值,了解其含义
arong1234 2008-03-13
  • 打赏
  • 举报
回复
无论你尝试发送多少,send都可能发送少于这个字节数,因此TCP编程布应该依赖于发送次数,而是要确认到底发送了多少字节,从而知道下次该从哪开始继续发,看看send得返回值,了解其含义
arong1234 2008-03-13
  • 打赏
  • 举报
回复
无论你尝试发送多少,send都可能发送少于这个字节数,因此TCP编程布应该依赖于发送次数,而是要确认到底发送了多少字节,从而知道下次该从哪开始继续发,看看send得返回值,了解其含义
加载更多回复(11)
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧