(UDP Python Pydroid 3) телефон получает данные, будучи сервером, но компьютер не получает, будучи сервером

#python #sockets #udp #pydroid

Вопрос:

Я использую общий доступ к соединению с 4G на своем телефоне.

режим = 0 : Когда я использую свой телефон в качестве сервера с приложением Pydroid 3 (из playstore, вы можете создавать и запускать файлы Python), привязка к адресу в Настройках / о_фоне / IMEI_and_IP : 192.0.0.7, и мой компьютер в качестве клиента, отправляющего на тот же адрес, мой телефон хорошо получает данные и может отправлять их обратно, используя адрес, возвращенный s.recvfrom(1024) : 192.168.199.202

режим = 1 : Но когда я использую свой компьютер в качестве сервера, привязывая его к адресу в ipconfig, который равен 192.168.199.202, и мой телефон в качестве клиента, отправляя на тот же адрес (как он делал ранее), компьютер ничего не видит … Wireshark может видеть, как отправляются посылки.

Что может быть не так ?

Спасибо, что уделили мне время.

Phone.py :

 import socket import time  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  port = 65432  mode = 0  if mode == 0:   addr = "192.0.0.7"   s.bind((addr, port))   d, a = s.recvfrom(1024)  print(d)  print(a) #192.168.199.202   s.sendto(d, a)   time.sleep(5)   s.sendto(d, a)  elif mode == 1:  addr = "192.168.199.202"    s.sendto(b'hola', (addr, port))  

Computer.py

 import socket  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  port = 65432  mode = 0  if mode == 0:   addr = "192.0.0.7"  port = 65432  s.sendto(b'hola', (addr, port))   d, a = s.recvfrom(1024)   print(d)  print(a) #192.0.0.7   d, a = s.recvfrom(1024)   print(d)  print(a)  elif mode == 1:   addr = "192.168.199.202"  s.bind((addr, port))  print("waiting for reception....")   data = s.recvfrom(1024)   print(data)  

Комментарии:

1. Я думаю, что это, вероятно, связано с настройкой «общего подключения» на моем телефоне. Вероятно, это не позволяет подключенному устройству выступать в качестве сервера, в качестве сервера можно использовать только телефон. Но я не знаю, как это изменить.