2013-05-13 59 views
1

好的,請不要因爲這個問題而殺了我。 我目前正在開發2D在線多人遊戲平臺遊戲。是的,這很酷。我大部分的遊戲都是用幾個bug編寫的,沒有經過優化,但是我在網絡方面遇到困難。我使用了PyGame,所以我嘗試使用一堆Python庫進行聯網。你的名字,我認爲我已經看過所有的主要的。 這裏有一些 PyEnet - 認爲它有內部擁塞控制,ugh MasterMind - 不是異步 PodSixNet - 這是甚至UDP? 豆科植物 - 目前卡住了服務器給我一個例外,等待在郵件列表上的回覆。看起來絕對華麗,否則。 不記得我嘗試過的所有其他人。 無論如何,我需要的是UDP(相信我,我需要UDP)和另一個可靠的聊天協議,masterserver,新的玩家信息以及所有我不能丟失的數據包。我在某處讀到同時使用TCP和UDP並不是一個好主意,所以我嘗試在Python中找到可靠的UDP實現,因此我都在這些晦澀難懂的庫中漫步。一路上我學會了自己套接字,所以我有兩條清晰的路徑。 1)當人們問UDP和TCP在一起是不是一個好主意時,也許他們意味着他們會在兩種協議中使用相同的端口。如果我使用兩個不同的端口有多糟糕? TCP部分大部分時間都處於空閒狀態,無論如何,對於繁忙的服務器,每10秒可能會有0到20個數據包。 2)寫我自己的可靠的UDP。呃,這就是我隱藏的東西。如果全部失敗,我想我需要這樣做。蟒蛇網絡與動作遊戲的UDP

+0

總之,一個Python腳本可以在兩個不同的端口上同時管理UDP和TCP嗎? – Ohmnivore 2013-05-13 00:20:10

回答

-1

總之,是的。我一直使用Python/Scapy來測試網絡設備。我假設你將爲兩個獨立的通信渠道使用線程。如果你的CPU可以處理它,沒有理由不這樣做,當然,網絡遊戲產生的流量通常不足以顯着利用現代CPU。

+0

儘管我愛Scapy,但我不明白你爲什麼要提及這個答案。如果你有需要分享的東西,可以考慮評論。這根本不能幫助我。 – dc5553 2013-05-13 11:58:48

+0

我爲他的問題提供了一個非常好的答案。 Scapy可以用於此目的。當性能不成問題時,人們並不總是需要使用套接字。如果性能問題,應該使用c而不是Python。另一方面,您先生,您沒有理由不相信我的答案不夠好。如果沒有清楚地理解答案的含義,請停止投票。 – wookie919 2013-05-14 20:38:45

+0

我理解scapy,並且我理解套接字如果您懷疑我,請參閱我的答案。我不寬鬆地使用downvotes,這不是在這種情況下使用的正確的庫。 – dc5553 2013-05-17 12:22:32