單純記錄自己的思考盲點
連線協議讓我頭蠻痛的地方是我一直想不通要怎麼寫才比較好,因為以往寫的程式都是單機,不需要處理狀態同步的問題。
玩家必須收到系統通知到他的回合才能開始行動,但系統需要收到ACK封包才能確信玩家收到通知,往下一段程式碼執行。
但是扯到ACK封包的時候就代表我在處理TCP層以下的事情,python socket 照理說已經把下面的事情處理好了。所以可能還要把socket對於send()和recv()的說明看得更清楚一些。
這邊先假設send()結束回傳就代表client已收到封包並且回覆,那sever這邊就會繼續往下執行。
如何確定client收到封包?
然後接收封包和發送封包最好的方式是拆分成兩個獨立的handler處理,原本我想把SYN+ACK放在一個函數內一起處理,不過後面看來好像沒辦法這樣子做。因為有可能收到其他不相關的封包(心跳事件)
發送和接收是分開獨立的事情,因為socket可能會出現其他類型的封包(事件)