[問題] 關於thread 與 呼叫函式的疑問

看板C_and_CPP (C/C++)作者 (~Sushi~)時間14年前 (2011/07/31 18:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) jrtplib 問題(Question): 事情是這樣的 本人目前在實作 Reverse Fast Broadcasting (RFB) 演算法 簡單來說, 我需要同時發送封包給 client 端 所以我在 server 端運用 pthread 開了五個 session 跟 client 連線 連線都還算正常, 問題出在發送封包 我是用 jrtplib 來連線的 所以發送封包是用 sess.SendPacket((void *)buffer, 1024, 26, 1, 1000); 這行指令 因為我必須同時發送封包, 所以呼叫這行指令的時間近乎相同 不知道是不是同時呼叫的關係, 程式就當了. 所謂的當是我的putty斷線了, 沒辦法再一次連線 所以我也不清楚 linux 那台電腦詳細的狀況是怎麼回事 要大約等個 5~10 分鐘才能再一次連線 想請問會當的原因是同時呼叫的關係嗎? 還是另有原因? 那有何解決方法呢? 這裡說明一下參數 sess : 是在 thread 裡各別產生的, 所以不會相同 buffer : 原本我就先創好 5 個buffer, buffer1~buffer5, 在thread裡判斷好是哪個session再把指標給buffer 所以buffer也不一樣. 1024 : 資料長度 26 : RTP負載類型->JPEG 1 : 標記,檔案開頭我就設定為1 1000 : timestamp 很抱歉暫時無法說明 linux 詳細狀況, 得等到非假日才能去看情況 餵入的資料(Input): 檔案數據 預期的正確結果(Expected Output): 可以順利傳送 = = 錯誤結果(Wrong Output): 連線中斷 補充說明(Supplement): 確定是這行有問題, 因為註解掉就可以跑 thread 裡面的迴圈 在此也先謝謝大家過目~ --

03/03 22:13,
幹 我剛剛下班買了包地瓜球 往地上一丟 一隻小強跑出來
03/03 22:13

03/03 23:02,
樓上那是寶貝球吧
03/03 23:02
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.133.76 ※ 編輯: snoopyuj 來自: 114.32.133.76 (07/31 23:23)
文章代碼(AID): #1EDIlhdG (C_and_CPP)
文章代碼(AID): #1EDIlhdG (C_and_CPP)