→ andymai:所以是兩條執行緒都在等著收封包?弄第三條執行緒專門收封 08/01 12:45
→ andymai:包~收到之後立刻判斷該給哪條執行緒執行~會不會比較好? 08/01 12:46
→ andymai:不然就是不要 bind 同一個 port 了... 08/01 12:48
只有接收一條執行緒
while (true)
{
byte[] data = new byte[1024];
int recv = this.socket.Receive(data);
...
}
參考範例寫法是這樣
執行緒跑到Receive就會停住直到有命令近來才會往下走
傳送是用副程式
流程是
傳出之後用do-while迴圈
判斷有無收到Server回傳"ACK" 否則 重傳三次
專收訊息再分派的方向有思考過
想不太出來怎作
※ 編輯: Achillean 來自: 122.116.78.236 (08/01 12:55)
→ andymai:???那就把接收這條當成專門收的執行緒啊?另外再開一條執行 08/02 09:37
→ andymai:緒來專門處理~不就好了?避免接收和處理忙不過來~應該還要 08/02 09:39
→ andymai:有個queue來放待處理的資料就是了... 08/02 09:39
→ Beramode:既然只有一個thread在接資料,你回傳的ACK就要能被判斷 08/09 14:57
→ Beramode:是誰回傳的 08/09 14:59