[英]Python Port Forwarding With Sockets
我正在努力做到这一点,以便我可以从世界各地的其他网络连接到该服务器,正如您在屏幕截图中看到的那样,只要我设置了端口转发以将外部端口 6000 上的所有请求转发到我的 static ip 地址存储在主变量。
#This is my Server
import socket
import threading
host = '192.168.1.135'
port = 6000
#s = socket.socket()
s = socket.socket()#socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen()
def send():
mess = input("--> ")
con.send(bytes(mess, 'utf-8'))
def receive():
msg = con.recv(1024)
print(msg.decode('utf-8'))
while True:
try:
con, address = s.accept()
print(f'Connection to {address} made successfully!')
receive()
send()
except:
pass
这是我下面的客户端文件,出于明显的原因,我从主机变量中取出了我的公共 ip 地址......当我尝试连接到网络时,服务器正在运行,它连接正常,在它打印的服务器文件中ip 地址显示我的网络网关地址为连接的 ip。 但是当尝试从网络外部连接时,它不起作用!
import socket
host = 'public ip'; port = 6000
def send():
mess = input('--> ')
s.send(bytes(mess,"utf-8"))
def receive():
msg = s.recv(1024)
print(msg.decode('utf-8'))
while True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, port))
send()
receive()
except:
pass
此链接将向您显示我在网络设置中设置的设置图片。
https://i.stack.imgur.com/TmNYc.png
我对整个“端口转发”的想法很陌生,但在尝试了数百种解决方案一周多之后似乎找不到问题似乎没有任何效果......如果您需要更多信息来帮助解决这个问题,请问,谢谢你!
(我还不能添加评论)首先尝试将服务器 ip 设置为“0.0.0.0”并尝试在服务器和客户端上使用端口 6000,不要使用不同的端口并转发不同的端口
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.