[問題] 關於thread 與 呼叫函式的疑問
開發平台(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)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章