Я построил сетевую игру с блендер движок игры с сокетом UDP, у меня есть 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, вы можете найти несколько онлайн-тутуров (http://www.thegeekstuff.com/2011/02/iptables-add-rule/). Но вы, вероятно, не так, вам придется обратиться к руководству вашей модели. К сожалению, многие коммерческие модели не позволяют делать такие вещи. – Keith