почему не работает соединение двух компьютеров между сервером (python) и клиентом (C# в единстве)? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь играть в свою игру Unity с 2 компьютеров (один - сервер (python), а другой - клиент (Unity и C#)), но когда я пытаюсь подключиться, консоль Unity показывает мне это ошибка:

"SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, поскольку подключенный хост не смог ответить."

Если я поменяю IP-адрес клиента и запустим его на том же компьютере, он будет работать

Можете ли вы помочь мне выяснить это?

это клиент c# код (единицы):

socket my_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.43.95"), 7777);
        GameMaster.my_socket.Connect(endPoint);

это код сервера (в python):

import socket
my_socket = socket.socket()
my_socket.bind(('0.0.0.0', 7777))
my_socket.listen(5)
(client_socket, client_address) = my_socket.accept()
print str(client_address)+" is connected"    

1 Ответ

0 голосов
/ 04 мая 2020

кроме IP-адреса ошибки и порта, и вы не уточняете, какой протокол вы хотите использовать UDP или TCP ??

так что ваша Unity Program, кажется, работает в TCP

Я думаю, что ваше определение в python не подходит (например, я не вижу принятия для TCP) [вы изменили свой ответ, его хорошо сейчас]

если вы хотите сделать TCP в python у вас есть образец ЗДЕСЬ

сокет импорта

 TCP_IP = "your IP"
 TCP_PORT = yourPort

 sock = socket.socket(socket.AF_INET, # Internet
                      socket.SOCK_STREAM) # TCP
 sock.bind((TCP_IP, TCP_PORT))
 sock.listen(1)
 conn, addr = sock.accept()
 print 'Connection address:', addr    

 while 1:
     data = conn.recv(BUFFER_SIZE)
     if not data: break
     print "received data:", data
     conn.send(data)  # echo
 conn.close()

после для производительности и если вы не принимаете некоторые данные, я предлагаю вам выбрать UDP ..

, вы найдете множество примеров на net в C# и Python для клиент-серверного TCP или UDP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...