PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] select 问题
楼主:
tccheart
(123)
2015-03-19 17:38:21
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
android jni c++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
小弟最近使用android 的jni 写 c的 socket
我是client端 除了主执行绪外开了一条thread , 用select传入NULL去咬住等资料进来
(不设timeout)
但当我要结束连线的时候 select函数仍然咬著 主执行绪切不断
请问有无方法在主执行绪 让这个select wake up 然后再断线 ?
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
res = select(sockfd + 1, &infd, &outfd, &errfd, NULL);
补充说明(Supplement):
作者: LiloHuang (十年一刻)
2015-03-19 17:49:00
如果要用 blocking I/O,已经开 thread 就直接 recv 吧不晓得那些是 blocking 的 fd 还是 non-blocking 的 fd一般是 select 搭配 timeout + while loop with flag真的要暴力停止的话,可以送一个 signal 给该 thread此时 select 就应该会退出 blocking state,返回 EINTR推文一请忽略,我想你应该是要等待一个以上的 fd :P
作者:
kingofsdtw
(ä¸èƒ½é–’下來!!)
2015-03-19 23:43:00
实作一个data controler, if(open(temp_control))
作者: chubiei (:))
2015-03-19 23:43:00
送signal给thread, select自然就会跳出来了
作者: LiloHuang (十年一刻)
2015-03-19 23:53:00
记得 Android 上也有 pselect,用 pselect 更方便处理这儿有完整的范例程式码
http://goo.gl/H2DkXm
作者: asxz87 ( )
2015-03-19 23:54:00
加个dummy/signal sockfd到infd, send data让select被trigger
作者:
Killercat
(杀人猫™)
2015-03-20 01:14:00
select要用signal杀 不过既然都用C++了 用asio吧
楼主: tccheart (123)
2015-03-20 17:44:00
谢谢各位大大!
继续阅读
[问题] 指数加了转型后取ceil()结果不同
yea107
[问题] dev-c++新手求帮助
opl164
[问题] array^
newlymoon
[问题] Xcode compile课本source code 一直fail
KAINTS
[问题] C++声音处理 音高
dracb
[问题] ODBC错误码 IM005发生的原因@@?
BIAO
[问题] 函数指标的void*参数个数可不定?
aMaa
[问题] vector size回传异常
cknick
[问题] C++ 开档案就是慢? 还是处理程序问题?
xthe
[问题] MFC read txt and transfer to EXCEL
rarr
Links
booklink
Contact Us: admin [ a t ] ucptt.com