Windows socket网络编程中的几个问题 C++

1,当接收端系统缓冲区受到一个数据包后,就产生一个事件FD_READ,然后程序进行相关的处理,我希望程序处理结束后再响应FD_READ,可以暂时关闭FD_READ事件吗?... 1,当接收端系统缓冲区受到一个数据包后,就产生一个事件FD_READ,然后程序进行相关的处理,我希望程序处理结束后再响应FD_READ,可以暂时关闭FD_READ事件吗?

2,如何设置socket接收缓冲区的大小?
3,我要传输视频文件,显然是很大的,发送端发送的速度会很快,我想实现像流媒体一样的功能,应该走什么思路呢?
展开
 我来答
空雪梦见
2013-11-22 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1196万
展开全部
1、FD_READ就是通知你程序进行处理的。如果处理结束了那也就不需要FD_READ了。FD_READ并不是主动来的,你叫它来才来的。比如WSAAsyncSelect,你不调用就不会有FD_READ来。
2、setsockopt可以修改缓冲区大小
3、只有你知道媒体流的码率时才能实现,实现方式很简单就是限制发送速度。你不要不停地调用send就可以了,发完过一会儿再继续发,send返回的值是将要发送的数据的大小,可以用于计算当前速度
myeang
2013-11-22 · 超过10用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:28.7万
展开全部

我的知识只能帮您 略答 2 和 3

设置socket接受缓冲区你要通知客户吗?

int recv(
  SOCKET s,       
  char FAR *buf,  
  int len,        
  int flags       
);

你要多线程传输大视频文件  推荐尝试一下  断点发送的方法, 

你要传输 A 文件,  让客户将 A 文件分成100个包 , 每个包的字节前 加上 [文件ID 或 MD5 ] [分包ID]   (使用MD5可实现 P2P UDP分点下载)

字节到达服务器后   得到文件ID与分包ID  进行字节数组的存储   最后合成

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式