UDP之非同步模式該如何設定

喜歡程式設計嗎?想要一窺 KDE/Qt 程式設計的奧秘嗎?想要
學習 X Window 上的視窗程式設計嗎?歡迎各類關於 KDE/Qt、Qtopia、Qt/Embedded、QSA、PyQt 等各類心得討論。

版主: AceLan, Franklin

UDP之非同步模式該如何設定

文章正在申請中會員 » 週六 6月 25, 2005 8:36 pm

Dear 大大:
我建立一個UDP之 server socket,由於模式為阻攔式模式, 所以recvfrom要等到內部資料佇列又datagram時才返回,我該如何設定為非同步式
正在申請中會員
可愛的小學生
可愛的小學生
 
文章: 19
註冊時間: 週五 6月 03, 2005 5:50 pm

文章訪客 » 週日 6月 26, 2005 12:17 am

所以recvfrom要等到內部資料佇列又datagram時才返回

小弟不太明白這一句話 希望您解釋一下
訪客
 

文章訪客 » 週日 6月 26, 2005 12:35 am

do you mean
from blocking mode to non-blocking mode ?? :-D :-D
訪客
 

文章正在申請中會員 » 週日 6月 26, 2005 8:32 pm

Anonymous 寫:所以recvfrom要等到內部資料佇列又datagram時才返回

小弟不太明白這一句話 希望您解釋一下



對,因為這樣程式會停留在等待階段,所以須要設定非同步式,由於在windows有API可設定非同步式(如WSAAsyncSelect),但我在linux下卻找不到,請問有誰有這方面資訊可提供
正在申請中會員
可愛的小學生
可愛的小學生
 
文章: 19
註冊時間: 週五 6月 03, 2005 5:50 pm

文章guest » 週一 6月 27, 2005 2:17 pm

Default 應是 non-blocking才是啊~ 怎麼會變成blocking
你是不是有下MSG_WAITALL這個flag !?

你可以試試用fcntl去把socket 設為non-blocking,
若是知道要收的資料長度就用select去收也可以~
guest
 


回到 KDE/Qt 程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron