Python 使用套接字进行端口转发并公开套接字代码

Python 使用套接字进行端口转发并公开套接字代码,python,sockets,python-3.x,portforwarding,Python,Sockets,Python 3.x,Portforwarding,我正在尝试允许我的代码从其他网络上的设备运行。这里的代码是针对我的服务器的。我的问题是,何时在路由器上进行端口转发设置如果我希望有人能够访问网络,我是否将外部IP或内部IP置于端口转发设置中?当我执行客户端尝试连接时,我是给他们外部IP和端口还是内部IP和端口尝试连接 import sockets def main(): port = None host = str(input("Enter ip to host on:")) if host == "port_forwa

我正在尝试允许我的代码从其他网络上的设备运行。这里的代码是针对我的服务器的。我的问题是,何时在路由器上进行端口转发设置如果我希望有人能够访问网络,我是否将外部IP或内部IP置于端口转发设置中?当我执行客户端尝试连接时,我是给他们外部IP和端口还是内部IP和端口尝试连接

import sockets
def main():
    port = None
    host = str(input("Enter ip to host on:"))
    if host == "port_forward"
        host = "192.xxx.x.x"
        port = 9856
    elif host == "my_ip":
        host = socket.gethostbyname(socket.gethostbyname())
        port = int(input("Enter port to listen to"))
    else:
        port=int(input("Enter port to listen to"))
    s = socket.socket()
    s.bind((host,port))
    print("Host: "+host + " port:"+str(port))
    s.listen(1)
    c, addr = s.accept()
    print("Connection from:" +str(addr))
    while True:
        data = c.recv(1024).decode('utf-8')
        if not data:
            break
        print("from connected user:")
        data = input("Enter text to send.")
        c.send(data.encode('utf-8'))
    c.close()
main()

您可以只说:
host=”“
,您的服务器将监听所有接口。。(我不是说这对你有用,我只是说这可能是因为你问题中的信息有限)@SuperSaiyan它对不在我网络上的设备有效吗,这样我就可以在其他网络上向PC发送消息?我应该使用什么ip登录到客户端?它将在您能够访问ip/端口的位置工作。真正的答案将取决于您的网络布局。例如:您是否直接连接到internet,是否有防火墙规则,是否有端口转发规则等。对于您的主要问题,您应该计划设置端口转发规则,如:Ext interface port A=>internal ip X+internal port B。您将通过外部ip和端口进行连接A@SuperSaiyan我想我明白你的意思。Ex-set-forwarding使数据从发布地址78.321.45.41和端口8888转到端口5555的192.168.5.27,我的python代码已修复,因此主机为内部或“”和5555,但当我转到端口8888的客户机时,它说连接被拒绝。