port translation에 대한 내용을 읽었습니다. 이제 테스트하고 싶습니다.NAT 라우터 뒤에 UDP 패킷을 수신 할 수 없습니다.
NAT 라우터 및 외부 IP 주소가있는 서버 뒤에 로컬 컴퓨터가 있습니다.
내 컴퓨터의 5000 번째 포트에서 서버의 4000 번째 포트로 패킷을 보내는 방법입니다.
import socket
import sys
UDP_IP = #external server IP address
UDP_PORT = 4000
MESSAGE = "Hi!"
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind(('0.0.0.0', 5000))
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
오른쪽 그 후 나는 내가 응답을 보내 (someIP, somePort)
에서 들어오는 UDP를 볼 때 서버에서 로컬 컴퓨터
import socket
import sys
UDP_IP = #my ip address in the local network
UDP_PORT = 5000
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024)
print "received message:", data
에 5,000 번째를 듣고 시작 같은 someIP
및 somePort
(와 같은 스크립트를 사용하여 다른 포트 및 주소). 하지만 내 로컬 컴퓨터에서이 응답을받지 못했습니다. 왜?
또한이 코드는 서버가 로컬 네트워크에있을 때 올바르게 작동합니다.
왜 같은 소켓을 사용하지 않으시겠습니까? –