tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2945回复:28

有谁对Socket编程熟啊,请教。

楼主#
更多 发布于:2002-10-24 13:12
这几天忙着为公司的数码相机添加网络可视功能。用Socket通过局域网传输数据。主机开端口,客户机发数据,发现一秒钟只能发4帧左右数据(640*480,大概40KB一帧),主要是因为客户机在Send之后不能得到主机已经接受完成可以开始下一次发送的通知,只有Sleep一段时间,不知有没有好的方法呢?
还有10M/100M网卡速度是指什么速度?为什么发40K数据客户机要等待300多毫秒?
谢谢啊。 :)
(这里放的分是鼓励回帖的,回答技术问题另外给专家分。)

最新喜欢:

zackaryzackar...
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-25 11:39
我证明花猫是清白的

btw:花猫最近时间很多呀,天天在这泡着,公司放你大假 :D

没有,我希望我马上从这里消失。 :( :( :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-25 11:30
我证明花猫是清白的

btw:花猫最近时间很多呀,天天在这泡着,公司放你大假 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-25 11:26
我倒是可以申请一付马甲,自己给自己加,不过觉得那样太不好意思。

我可没那么干
我的分真是我抢来的
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2002-10-25 11:15
我不会这么着就提醒了别人吧?
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-10-25 11:14
我倒是可以申请一付马甲,自己给自己加,不过觉得那样太不好意思。
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-25 10:55
不告诉你。这是我们强盗界的规矩,内部信息不得外泄
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
7楼#
发布于:2002-10-25 10:50
[quote][quote][quote][quote]果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!

哦,专家分一定要啊。 [/quote]
当然,我现在就指着专家分活着呢 :mad: :mad: :mad: [/quote]
你最近不是搞了好多专家分吗? [/quote]
是啊,坑蒙拐骗抢来的 [/quote]
要怎么别人才能给啊?我回答了好多问题,一般都是给各5分10分的,好少啊。打击积极性!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-25 10:40
[quote][quote][quote]果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!

哦,专家分一定要啊。 [/quote]
当然,我现在就指着专家分活着呢 :mad: :mad: :mad: [/quote]
你最近不是搞了好多专家分吗? [/quote]
是啊,坑蒙拐骗抢来的
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
9楼#
发布于:2002-10-25 10:38
[quote][quote]果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!

哦,专家分一定要啊。 [/quote]
当然,我现在就指着专家分活着呢 :mad: :mad: :mad: [/quote]
你最近不是搞了好多专家分吗?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-25 10:13
[quote]果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!

哦,专家分一定要啊。 [/quote]
当然,我现在就指着专家分活着呢 :mad: :mad: :mad:
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
11楼#
发布于:2002-10-25 10:09
果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!

哦,专家分一定要啊。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-25 09:51
果然是socket API速度快。现在客户机采集的数据基本全部发到了主机而且不用等待,单路显示做完了,速度非常好,还要做多路的。谢谢大家。
我准备到开发工具使用版开一个帖子,给各位专家分,每人20分。再次感谢!
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-25 08:30
1,首先不要用MFC的API
2,改变Socket接收和发送缓冲区的大小,如改为20K。
3,Send函数可以一直发送,不必接收对端的响应。
4,如果需要类似源码,我可以提供。

非常感谢。我昨天试了一下直接用socket API速度确实很快,正在调试,如果搞不定的话再向你请教。 :)
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-24 18:31
[quote]如果你用的是TCP的话,为什么要Sleep才知道对方接受了?
如果是UDP的话,你可能需要做类似于tftp类似的简单协议来确认。

UDP和tftp是什么?不懂。我直接用CSocket类,应该是TCP吧? :D [/quote]
faint ,TCP如果连接没断开肯定传输没问题,UDP可以通过连续发几次同样的包确保对方能收到(当然要给个序号,同一个序号表示内容相同的重复包)
我不仅要金子,我还要点石成金的手指!
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-24 18:00
1,首先不要用MFC的API
2,改变Socket接收和发送缓冲区的大小,如改为20K。
3,Send函数可以一直发送,不必接收对端的响应。
4,如果需要类似源码,我可以提供。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
Kingdomsoft
驱动巨牛
驱动巨牛
  • 注册日期2002-10-24
  • 最后登录2004-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-10-24 15:54
还是自己用socket API吧,MFC的效率不敢肯定。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-10-24 15:06
还有,你的显示和接收数据是不是在同一个线程里面做的?建议改成多线程试试。

接收和显示是不同的线程的。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-10-24 15:04
如果你用的是TCP的话,为什么要Sleep才知道对方接受了?
如果是UDP的话,你可能需要做类似于tftp类似的简单协议来确认。

UDP和tftp是什么?不懂。我直接用CSocket类,应该是TCP吧? :D
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-10-24 15:03
[quote]为什么send后不能接收响应?主机应该发确认啊 :mad: :mad: :mad:

用什么函数发回确认?还是自己定义回传数据表示接收完毕? [/quote]
TCP自己确认了,OS缓存你要发的数据,所以只要缓存容量够,你就能拼命发,不管它收到无。
如果是UDP,你自己确认的了。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
上一页
游客

返回顶部