社区
网络编程
帖子详情
★★★高分送智者——如何用Winsock传输连续的大量数据?★★★
puffgeng
2004-11-25 07:18:10
用Socket进行连续的大数据量的传输时,TCP和UDP都有限制,TCP会自动进行断帧处理,UDP限制传输缓冲区数据不得超过8KB,请问通过什么方法可以实现连续的大数据量传输?如传输视频和音频。
我看了一些文章,好像可以通过异步传输的消息模式实现,但有没有其它方法,请高手支招。
...全文
336
16
打赏
收藏
★★★高分送智者——如何用Winsock传输连续的大量数据?★★★
用Socket进行连续的大数据量的传输时,TCP和UDP都有限制,TCP会自动进行断帧处理,UDP限制传输缓冲区数据不得超过8KB,请问通过什么方法可以实现连续的大数据量传输?如传输视频和音频。 我看了一些文章,好像可以通过异步传输的消息模式实现,但有没有其它方法,请高手支招。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2004-11-30
打赏
举报
回复
楼主可能是用了应用层协议来在双方之间通信,因而是不是可能需要自己拆包和组包
oyljerry
2004-11-30
打赏
举报
回复
参考RTP协议
puffgeng
2004-11-30
打赏
举报
回复
想多大就多大显然是不对的。mhorse(火狮)怎么不出现了啊?
论坛上也有许多相关的帖子,但都没有答案,难道这个问题很难回答啊?
tangrh
2004-11-30
打赏
举报
回复
呵呵,我的意思是你想多大就可以多大
Leryan
2004-11-29
打赏
举报
回复
回复人: kingzai() ( ) 信誉:115
use TransmitFile API
http://search.csdn.net/Expert/topic/1164/1164621.xml?temp=.1789514
没用的连接也帖出来。
不来了。
puffgeng
2004-11-29
打赏
举报
回复
问题还是没有解决啊,众说异词。
我问的是Socket的数据包的限制,所以 tangrh(阿唐)你是所答非所问。
mhorse(火狮)的回答较为让人接收,但请教具体解决办法。
blastzgd
2004-11-26
打赏
举报
回复
UDP要处理断帧我知道。
TCP好像是系统自己处理的
楼主,我没明白你的意思。
TCP被系统断帧后是加了顺序标志的,
你接收到的数据感觉不到被系统断帧。
mhorse
2004-11-26
打赏
举报
回复
tcp会把大的数据分成多个断帧传送,因此在接收端将收到多个断帧,所以
需要程序员自己实现断帧检测和再组合功能。
kingzai
2004-11-26
打赏
举报
回复
use TransmitFile API
http://search.csdn.net/Expert/topic/1164/1164621.xml?temp=.1789514
mhorse
2004-11-26
打赏
举报
回复
其实大家说的都很对,关键是“断帧”断的是什么类型的帧?是用户自定义的数据包还是IP协议的包。
当我们利用TCP/IP协议建立一条面向连接的SOCKET通讯通道时,数据将被分成一个个IP包在这个通道进行传输,传输控制协议-TCP保证了这些IP包进行数据传输时是按顺序提交,接收方按顺序接收的,整个传输过程还包含了纠错机制,重发机制,自动平衡传输速度等机制,所以是一种可靠的传输。但是当我们向对方传输的信息有很多种类时,而这些不同的信息传输时间具有不确定性时,我们就需要在
接收双方建立一个通讯协议,这种协议在网络分层中处于最顶层--应用层协议,它处在
TCP/IP协议上之上,经过应用层协议打包的一帧数据可能会被tcp分成多次传输,因此需要在接收方增加断帧检测。
jiudon
2004-11-26
打赏
举报
回复
是啊,不过udp的速度会另你满意的,至于校验的方法,根据你要求数据的准确性来定了!
tangrh
2004-11-26
打赏
举报
回复
哈哈,不要急,还是先去看看协议
tcp不是基于字节流的么,它这个流可厉害,保证从头流到尾,保证先发先到,顺序绝对保证,内容绝对正确,什么断帧,什么丢包,不可能,如果有这些,那叫什么可靠协议,对方发送多少,你就一定可以收多少,而且一个字节都不会差,拆包和组包都不是你管的,网络分层啊,兄弟。这些对应用层程序员来讲是透明的,管那干吗?
看看winsock2的api声明,谁说只能发小块数据?它定义的长度是dword哦,没有试过之前不要乱讲。
另外,TransmitFile不能传数据?呵呵,好好研究去吧
puffgeng
2004-11-26
打赏
举报
回复
我是用来传输流数据的,因此TransmitFile函数可能不适用。
blastzgd(边城浪子) ,你的意思是不是TCP不用在程序中进行断帧的处理,只要一个recv下来,所有数据都接收了?但实际当中好像不是这样啊,TCP一次recv也只能接收有限的数据。这一点mhorse(火狮)说得应该没错。
但mhorse(火狮)你能否说详细点如何实现断帧检测和再组合功能?
谢谢大家!!
gdy119
2004-11-26
打赏
举报
回复
TransmitFile 或者是send() ,recv()用循环:
while(seek)
{ send()}
while(end)
{recv()}
sharkhuang
2004-11-25
打赏
举报
回复
tcp没有问题!什么叫可靠传输
udp需要自己做可靠 例如sftp
whwjn
2004-11-25
打赏
举报
回复
你说反了吧,tcp是有8k的缓冲区,udp会自动断帧
对于tcp来说
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero));//直接发送
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_RCVBUF,(char *)&nZero,sizeof(int));//直接接收
udp发送端只管发送就好了,收端用eventselect模型来实现收,udp是整包发整包收的,
也可以在应用层自己分包组包
防火墙软件实现原理——利用
Winsock
2 SPI截获网络封报.pdf
防火墙软件实现原理——利用
Winsock
2 SPI截获网络封报.pdf介绍如何利用spi制作防火墙
基于
Winsock
的网络
传输
编程——报告.doc
基于
Winsock
的网络
传输
编程——报告,采用C程序设计语言,设计基于
WinSock
的文件
传输
系统。网络连接采用C/S架构,首先由服务端启动,在某个端口上侦听,等待客户端的连接; 一旦客户端向服务端发出连接时,服务端...
Socket编程系列之2:Windows-API网络编程入门实战
Winsock
编程接口 l UDP程序设计 l TCP套接口函数 l Web客户/服务器程序 l 基于windows的IO复用机制 l UDP广播和多播 l 套接字选项 l Windows套接字I/O模型 l 原始套接字与...
第6章 网络程序设计基本知识
6.1 网络应用程序的概念 6.2 TCP/IP应用程序工作模型与网络编程接口 6.3 套接口的概念及其编程原理 6.4
Winsock
API基本...6.5
Winsock
API基本函数——
数据
传输
6.6
Winsock
API基本函数——连接与套接口的关闭 习题
网络程序设计基本知识
网络程序设计基本知识: 1 网络应用程序的概念 2 TCP/IP应用程序工作模型与网络编程接口 3 套接口的概念及其编程原理 ...5
Winsock
API基本函数——
数据
传输
6
Winsock
API基本函数——连接与套接口的关闭
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章