2017-04-12 9 views
0

私はブロードキャスト接続を行う必要があります。私はPythonで2つの異なるソフトウェアをしました:Python UDPブロードキャストが機能していない(送信していない)

クライアント:

broadSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
broadSock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1) 
broadData = 8000 
broadSock.sendto(bytes(broadData), ('<broadcast>' ,3333)) 

SERVER:シェルが、何でsudo nc -l 3333:私はコマンドを使用して、サーバーのポートをリッスンするようにしようとした

broadSockListe = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
broadSockListe.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
broadSockListe.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
broadSockListe.bind(('',33333)) 
data, address = broadSockListe.recvfrom(1024) 

到着するようです。

クライアントはWindows上で動作し、サーバはubuntu上で動作します。

はあなた

+0

[OK]を、私は問題を解決しました。 33333 対3333と私は、クライアントの最後の文字列を変更: ポートが異なっていた古いで( "UTF-8")、(( ''、3333))、バイト(broadData) broadSock.sendtoそれは「物」を8000バイト長く送ることでした。 –

答えて

0

はこれを試してありがとう:

host = '255.255.255.255' 
port = 49160 

# Discovery IP Conf Request 
req = "\x54\x44" 
crc = "\x3d\x73" 
data = req+crc 

# istanza il socket UDP 
clie = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
clie.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
clie.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 


clie.sendto(data, (host, port)) 
print "tx:", data 
clie.close() 
関連する問題