[問題] Socket,Client,ACK的架構問題
請問一個Socket的Server-Client機制
如果我設計的架構Client,具有傳送和接收server廣播的功能
1. 傳出動作流程有作接收ACK
確認命令是否成功傳到Server端
Server收到Client訊息會回傳ACK字串
2. 有一隻接收的執行緒在等待Server傳命令過來
這樣當再作動作一時候,Server傳ACK過來時候
有可能會被動作二的等待接收的執行緒搶走
這邊架構應該怎麼設計會比較好?
讓接收這個動作同時存在1,2兩個地方
還是ACK有別得方法實現不會干擾?
初學Socket,請指點一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.78.236
→
08/01 12:45, , 1F
08/01 12:45, 1F
→
08/01 12:46, , 2F
08/01 12:46, 2F
→
08/01 12:48, , 3F
08/01 12:48, 3F
只有接收一條執行緒
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)
→
08/02 09:37, , 4F
08/02 09:37, 4F
→
08/02 09:39, , 5F
08/02 09:39, 5F
→
08/02 09:39, , 6F
08/02 09:39, 6F
→
08/09 14:57, , 7F
08/09 14:57, 7F
→
08/09 14:59, , 8F
08/09 14:59, 8F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章