主题 : UDP编程接受问题 复制链接 | 浏览器收藏 | 打印
三人行
级别: 侠客
UID: 13052
精华: 0
发帖: 71
金钱: 355 两
威望: 71 点
综合积分: 142 分
注册时间: 2010-01-18
最后登录: 2014-11-16
楼主  发表于: 2010-03-17 09:30

 UDP编程接受问题

各位高手大人:

我编写UDP程序的时候,接受数据通过一个按键函数执行,每点击一次可以接受一下数据。
可通过定时器来实时更新的话,程序便失去响应。
想问一下,怎样来实现,接受数据的实时更新呢。谢谢大家。
三人行
Eddy Lau (Sun Boy)
级别: 圣骑士
UID: 11202
精华: 1
发帖: 364
金钱: 1885 两
威望: 380 点
综合积分: 748 分
注册时间: 2009-11-30
最后登录: 2010-04-12
1楼  发表于: 2010-03-17 10:37
引用楼主xinlan_al于2010-03-17 09:30发表的 UDP编程接受问题 :
各位高手大人:

我编写UDP程序的时候,接受数据通过一个按键函数执行,每点击一次可以接受一下数据。
可通过定时器来实时更新的话,程序便失去响应。
想问一下,怎样来实现,接受数据的实时更新呢。谢谢大家。

为什么通过定时器来实时更新, 程序便失去响应呢?
这才是各下要思考的重点!
為什麼生世間上 此間許多哀與傷 為什麼爭鬥不絕 歡欣不永享 
問為何人存隔膜 顏面無真相 問那天可找得到 理想中的烏托幫 
三人行
级别: 侠客
UID: 13052
精华: 0
发帖: 71
金钱: 355 两
威望: 71 点
综合积分: 142 分
注册时间: 2010-01-18
最后登录: 2014-11-16
2楼  发表于: 2010-03-17 11:42

 回 1楼(eddylau) 的帖子

eddylau, 版主,我的程序在附件里,你帮我看看吧。应该怎样修改。
我ARM板上的程序,是用的您的大作在进行调试。
描述:x86源文件
附件: UDP.zip (44 K) 下载次数:37
三人行
Eddy Lau (Sun Boy)
级别: 圣骑士
UID: 11202
精华: 1
发帖: 364
金钱: 1885 两
威望: 380 点
综合积分: 748 分
注册时间: 2009-11-30
最后登录: 2010-04-12
3楼  发表于: 2010-03-17 13:07

 Re:回 1楼(eddylau) 的帖子

引用第2楼xinlan_al于2010-03-17 11:42发表的 回 1楼(eddylau) 的帖子 :
eddylau, 版主,我的程序在附件里,你帮我看看吧。应该怎样修改。
我ARM板上的程序,是用的您的大作在进行调试。

建议各下改用多线程的方法, 开一条独立的线程来接收与更新udp的数据。
為什麼生世間上 此間許多哀與傷 為什麼爭鬥不絕 歡欣不永享 
問為何人存隔膜 顏面無真相 問那天可找得到 理想中的烏托幫 
三人行
级别: 侠客
UID: 13052
精华: 0
发帖: 71
金钱: 355 两
威望: 71 点
综合积分: 142 分
注册时间: 2010-01-18
最后登录: 2014-11-16
4楼  发表于: 2010-03-17 13:44

 回 3楼(eddylau) 的帖子

回复eddylau版主,多线程编程,在下没有搞定。
除了多线程有没有其他的方法呢。
eddylau版主的UDP例程也是通过 多线程的方法实现的么?
三人行
Eddy Lau (Sun Boy)
级别: 圣骑士
UID: 11202
精华: 1
发帖: 364
金钱: 1885 两
威望: 380 点
综合积分: 748 分
注册时间: 2009-11-30
最后登录: 2010-04-12
5楼  发表于: 2010-03-17 13:47

 Re:回 3楼(eddylau) 的帖子

引用第4楼xinlan_al于2010-03-17 13:44发表的 回 3楼(eddylau) 的帖子 :

eddylau版主的UDP例程也是通过 多线程的方法实现的么?

是的.
為什麼生世間上 此間許多哀與傷 為什麼爭鬥不絕 歡欣不永享 
問為何人存隔膜 顏面無真相 問那天可找得到 理想中的烏托幫 
用过的Linux发行版:Arch,Gentoo,Debian,Fedora,RHEL,CentOS,Ubuntu,OpenSUSE,RedFlag,Ylmf,De ..
级别: 骑士
UID: 12662
精华: 0
发帖: 181
金钱: 955 两
威望: 191 点
综合积分: 362 分
注册时间: 2010-01-11
最后登录: 2014-02-14
6楼  发表于: 2010-03-17 17:17
没响应是因为recv和send函数是通过进程阻塞来实现的 所以最理想的方法可能就是采用多线程了。

用timer是无效滴
业余Linux爱好者。
三人行
级别: 侠客
UID: 13052
精华: 0
发帖: 71
金钱: 355 两
威望: 71 点
综合积分: 142 分
注册时间: 2010-01-18
最后登录: 2014-11-16
7楼  发表于: 2010-03-17 20:52

 回 6楼(curay) 的帖子

啊。谢谢啦。
三人行