2016-07-13 30 views
0

我試圖從一個軟件發送數據到另一個在同一臺pc上運行的數據。前者的編碼是用python完成的。我這樣做:python中的套接字可以不用互聯網訪問

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.sendto("msg,Hi!", ("127.0.0.1", 12345)) 

這工作正常,當我有互聯網接入(AF_INET)。但是,這僅僅是一個示例代碼,我需要在其他一些應用程序中包含這部分內容,因爲我無法訪問互聯網,所以AF_INET不起作用。有沒有可能的替代品?

我已經試過AF_UNIX和AF_LOCAL,但它們都不起作用。我需要使用UDP。

+0

您正在使用哪種操作系統?當互聯網未連接時ping 127.0.0.1會發生什麼? – cdarke

回答

4

AF_INET與INTERNET無關。這只是意味着使用基於IP的通信。您可以在同一臺計算機上或跨計算機執行此操作。 127.0.0.1是指本地主機IP,即我自己的IP。每臺Unix/Linux機器都有相同的本地IP。

所以是的,這段代碼將無法訪問互聯網。

+0

感謝您的回覆。但是我一直在嘗試沒有互聯網。只有當我的筆記本電腦連接到互聯網時,我才能在其他應用程序上看到該消息。沒有互聯網,雖然我沒有得到任何錯誤,但我沒有看到其他應用程序的消息。你能否爲此提出其他建議? –

+0

其他應用程序是否在127.0.0.1上「偵聽」?或只在特定的IP?請運行「netstat -plnu」 –

+0

它在監聽。我知道這一點,因爲我可以將數據從手機發送到該IP和端口上的應用程序。該應用程序接收來自我的電話的數據,無論是否有互聯網。但是,當我嘗試從我的第一個軟件相同的東西,它不工作沒有互聯網 –

0

當然,您在使用套接字時不需要任何Internet概念。您可以使用ad-hoc網絡創建一個寬鬆的網絡並運行簡單的TCPUDP套接字腳本來傳輸您喜歡的內容。

可以INFACT使用組播廣播方案分享關於ad-hoc網絡中的不同設備的數據。