Python 服务器 可从任何地方访问的 TCP 服务器(通过外部 IP,完成端口转发)
Python server TCP server accessable from anywhere (via external IP, port forwarding is done)
我是新来的,如果我很笨,请不要生气 - 但我不知道。
我想制作一个 python TCP 服务器,可以通过外部 (public) IP 从任何地方访问它。我已经通过本教程在本地网络中完成了简单的服务器(它可以工作):
https://www.youtube.com/watch?v=XiVVYfgDolU
客户端发送字符串,服务器发回该字符串,但大写。
现在我想做同样的事情,但可以从任何地方访问。我读了很多。我有 Raspberry Pi,我在其中设置了静态 IP 地址并进行了端口转发(在端口 42424 上)。我只是在寻找一些教程,你可以在任何地方指导我——这就是我所需要的。或者你可以告诉我如何一步一步做,但我知道写答案需要很多时间。我尝试使用谷歌搜索,但没有找到任何东西。如果我这样做了,那是一个不知道外部 IP 和端口转发是什么的人,所以谈话的结尾是:了解什么是端口转发。
所以,请给我一些如何操作的提示,或者指导我去某个地方。谢谢!
代码
服务器:
import socket
def Main():
host = '10.0.0.140'
port = 42424
s = socket.socket()
s.bind((host, port))
s.listen(1)
c, addr = s.accept()
while True:
data = c.recv(1024)
if not data:
break
data = str(data).upper()
c.send(data)
c.close()
if __name__ == '__main__':
Main()
客户:
import socket
def Main():
host = '10.0.0.140'
port = 42424
s = socket.socket()
s.connect((host,port))
message = raw_input("->")
while message != 'q':
s.send(message)
data = s.recv(1024)
message = raw_input("->")
s.close()
if __name__ == '__main__':
Main()
当连接到 NAT firewall/router 后面的服务器时,除了端口转发之外,客户端还应该被定向到路由器 IP 地址。对于客户端而言,路由器的IP地址就是服务器。路由器只是根据端口转发规则转发流量。
我是新来的,如果我很笨,请不要生气 - 但我不知道。 我想制作一个 python TCP 服务器,可以通过外部 (public) IP 从任何地方访问它。我已经通过本教程在本地网络中完成了简单的服务器(它可以工作): https://www.youtube.com/watch?v=XiVVYfgDolU 客户端发送字符串,服务器发回该字符串,但大写。
现在我想做同样的事情,但可以从任何地方访问。我读了很多。我有 Raspberry Pi,我在其中设置了静态 IP 地址并进行了端口转发(在端口 42424 上)。我只是在寻找一些教程,你可以在任何地方指导我——这就是我所需要的。或者你可以告诉我如何一步一步做,但我知道写答案需要很多时间。我尝试使用谷歌搜索,但没有找到任何东西。如果我这样做了,那是一个不知道外部 IP 和端口转发是什么的人,所以谈话的结尾是:了解什么是端口转发。
所以,请给我一些如何操作的提示,或者指导我去某个地方。谢谢!
代码
服务器:
import socket
def Main():
host = '10.0.0.140'
port = 42424
s = socket.socket()
s.bind((host, port))
s.listen(1)
c, addr = s.accept()
while True:
data = c.recv(1024)
if not data:
break
data = str(data).upper()
c.send(data)
c.close()
if __name__ == '__main__':
Main()
客户:
import socket
def Main():
host = '10.0.0.140'
port = 42424
s = socket.socket()
s.connect((host,port))
message = raw_input("->")
while message != 'q':
s.send(message)
data = s.recv(1024)
message = raw_input("->")
s.close()
if __name__ == '__main__':
Main()
当连接到 NAT firewall/router 后面的服务器时,除了端口转发之外,客户端还应该被定向到路由器 IP 地址。对于客户端而言,路由器的IP地址就是服务器。路由器只是根据端口转发规则转发流量。