我用udp socket構建了帶有攪拌機遊戲引擎的網絡遊戲,我有server.blend和client.blend。在我家,遊戲的偉大工程等連接..但是當我發出的client.blend的朋友,他無法連接到我的服務器..用於遠程連接的UDP服務器和客戶端ip
這是我的服務器的構造函數:
class Server:
def __init__(self, host="", port= 9017):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.setblocking(False)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.bind((host, port))
這是我的客戶的構造:
class Client:
def __init__(self, server_ip="192.168.1.12", server_port= 9017):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.setblocking(False)
self.serv_addr = (server_ip, server_port)
我認爲它不工作我的朋友的電腦上,因爲IP地址。
有誰知道有什麼問題?
互聯網比這更復雜。您可能在防火牆後面執行地址轉換(NAT),該地址轉換阻止傳入的UDP數據包。你的朋友將無法直接訪問你的內部IP地址。要做到這一點,你必須制定一個特殊的防火牆規則。 – Keith
我明白...讓我說我想做特別的防火牆規則..是否複雜?你知道如何做到這一點? – Maor2871
這取決於你有什麼樣的。如果使用Linux,你可以[在網上找到一些tuturials](http://www.thegeekstuff.com/2011/02/iptables-add-rule/)。但是你可能不這樣做,所以你不得不參考你的模型的手冊。不幸的是,許多商業模式不會讓你做這種事情。 – Keith