我試圖將安裝在BeagleBoneBlack(linux設備)上的攝像頭的視頻流式傳輸到服務器(Windows服務器)。 BeagleBone使用DHCP(動態IP)連接到Internet,並基本上將UDP數據包發送到服務器。在服務器端,我使用套接字實現了一個簡單的Python程序,它應該可以輕鬆讀取來自特定IP或特定端口的UDP數據包。在wireshark中,我能夠看到數據包到達服務器,但python程序無法捕捉到它們。我試圖聽取不同的IP,如'本地主機'或特定的IP,但似乎沒有任何工作。無法使用Python讀取服務器上的UDP數據包
Python程序服務器端:
import socket
IP = '192.168.23.240' #IP of the BeagleBone on Wireshark
IP = '109.164.170.155' #IP of the router in which the BeagleBone is attached
IP = '0.0.0.0' #localhost
IP = '' #localhost
IP = '192.168.0.21' #IP localhost server
IP = 'localhost' #localhost
PORT = 5454
if __name__ == "__main__":
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((IP,PORT))
f = open('file.mp4','wb')
data, addr = s.recvfrom(4096)
print 'Receiving from: ' +str(addr)
for i in xrange(1000):
f.write(data)
data, addr = s.recvfrom(4096)
print 'receiving from ' + str(addr) + ' ...'
f.close()
s.close()
在Wireshark的服務器端:
如何是可能的,我能夠讀取Wireshark的數據包,但沒有使用一個簡單的Python程序?有人知道我在這裏做錯了什麼?
是的,該程序是聽本地主機,但我也嘗試過IP,如127.0.0.1或Beaglebone的IP:192.168.23.240這給了我一個錯誤「[Errno 10049]」請求的地址無效其上下文'「。 UDP上可能有防火牆,但我不明白wireshark爲什麼能夠讀取它們。順便說一句,我知道使用UDP發送文件不是最好的,但我只是測試連接。 – lcit