我是新来的,所以,如果我是愚蠢的话,请不要生气 - 但我不知道。 我想制作一个python TCP服务器,可以通过外部(公共)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()
答案 0 :(得分:0)
当连接到NAT防火墙/路由器后面的服务器时,除了端口转发外,还应将客户端定向到路由器的IP地址。就客户端而言,路由器的IP地址是服务器。路由器只根据端口转发规则转发流量。