#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. Я думаю, что это, вероятно, связано с настройкой «общего подключения» на моем телефоне. Вероятно, это не позволяет подключенному устройству выступать в качестве сервера, в качестве сервера можно использовать только телефон. Но я не знаю, как это изменить.