一张网卡接收UDP协议数据,再通过另外一张网卡发送出去。防火墙的映射应该也可以实现这需求,这里不研究了。
服务器配置了两个地址,一个外网地址 192.168.1.200 ,内网地址是10.10.1.1 。
# -* - coding: UTF-8 -* -
import socket
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(("192.168.1.200", 6060)) #对外网接收地址
while True:
recvd_data = udp_socket.recvfrom(1024)
recv_msg = recvd_data[0]
send_addr = recvd_data[1]
#print recv_msg
udp_socket.sendto(recv_msg, ('10.10.1.2', 6060)) # 内网接收端地址。
udp_socket.close()
if __name__ == "__main__":
main()