2013-05-17 34 views
0

我有一個Python本地主機設置在樹莓派監聽UDP數據包。但是我想知道如何讓這個公共服務器發送來自漫遊設備的UDP數據包。如何使一個UDP python本地主機去公開

以下代碼完美地發送來自同一無線網絡上的設備的UDP數據包。

import SocketServer 

PORTNO = 14 

class handler(SocketServer.DatagramRequestHandler): 
    def handle(self): 
     newmsg = self.rfile.readline().rstrip() 
    print (newmsg) 
     self.wfile.write(self.server.oldmsg) 
     self.server.oldmsg = newmsg 

s = SocketServer.UDPServer(('',PORTNO), handler) 
print "Awaiting UDP messages on port %d" % PORTNO 
s.oldmsg = "This is the starting message." 
s.serve_forever() 

回答

1

這更多的是網絡問題。你將不得不配置適當的路由器port forwarding。如果您的ISP沒有靜態IP,您可能還需要設置一些dynamic DNS服務。

連接到外部網絡所需的NAT遍歷需要192.168之外的靜態IP。 或10. 。*範圍。這通常由ISP DHCP服務器分配給路由器的外部MAC地址。

端口轉發設置如下所示: D_Link port forward

+0

可以端口轉發從樹莓派呢?我已經設置了樹莓派已經有一個靜態ip –

+0

如果我們知道你的路由器的型號,我可以提供更詳細的NAT穿越和端口轉發筆記。請注意,向外部開放端口可能存在安全風險。 – whatnick

+0

這將是偉大的。它是一個D-link dir-615。 –