gpt4 book ai didi

使用套接字进行 Python 端口转发

转载 作者:行者123 更新时间:2023-12-05 07:06:12 25 4
gpt4 key购买 nike

我正在努力做到这一点,以便我可以从世界各地的其他网络连接到该服务器,正如您在屏幕截图中看到的那样,前提是我设置了端口转发以将外部端口 6000 上的所有请求转发到我的静态 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

下面是我的客户端文件,出于显而易见的原因,我从主机变量中取出了我的公共(public) 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

此链接将显示我在网络设置中设置的图片。

/image/TmNYc.png

我对整个“端口转发”的想法很陌生,但在尝试了数百种解决方案一个多星期后似乎无法找到问题似乎没有任何效果......如果您需要更多信息来帮助解决这个问题问一下,谢谢!

最佳答案

(我还不能添加评论)首先尝试将服务器 ip 设置为 '0.0.0.0' 并尝试在服务器和客户端上使用端口 6000 并且不要使用不同的端口和转发差异

关于使用套接字进行 Python 端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62580980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com