我爲我的在線遊戲製作了一個服務器(python,twisted)。從TCP開始,然後在UDP中添加了不斷的更新(看到一個很大的速度提升)。但現在,我需要將每個UDP套接字客戶端與每個TCP客戶端連接起來。UDP和TCP對於一個客戶端總是使用相同的IP?
我這樣做是通過讓每個客戶端首先連接到TCP服務器並獲取唯一的ID。然後客戶端將此ID發送到UDP服務器,並將其連接。然後我有一個主要的TCP客戶端列表(由唯一ID排序)。
我的目標是能夠通過TCP和UDP將消息發送到同一個客戶端。
將UDP和TCP套接字鏈接到同一客戶端的最佳方法是什麼?
我可以只取一個新的TCP客戶端的IP地址,並通過UDP將數據發送到該IP?還是有必要爲客戶端連接兩次,一次用於TCP和一次用於UDP(通過發送'連接'消息)?
最後,如果有TCP/UDP知識的人可以告訴我(我是新手!),當通過UDP與TCP(來自同一臺機器)連接時,同一客戶端是否具有相同的IP地址?(我需要知道這一點,以保護我的服務器,但我不想意外阻止一些公平的用戶)
謝謝,作爲一個更新:我的方法工作正常,我已經發布了一個成功的iOS實時多人遊戲使用它:)它使用UDP爲非可靠的消息,TCP爲可靠的東西。遊戲鏈接:https://itunes.apple.com/ca/app/blewp!-eat-or-be-eaten-mmo/id996122625?mt=8 –