2012-09-26 25 views
13

नहीं भेज रहा है मैं एक पाइथन प्रोग्राम से दो लैब व्यू कार्यक्रमों में यूडीपी प्रसारण करने की कोशिश कर रहा हूं। मुझे प्रसारण भेजने के लिए प्रतीत नहीं होता है और मुझे यकीन नहीं है कि मेरा सॉकेट प्रारंभिक कहां गलत है, प्रसारण पर्याप्त सरल लगता है ?? जहां तक ​​मैं देख सकता हूं, अन्य पीसी द्वारा कोई डेटा प्राप्त नहीं किया जा रहा है। इसके अलावा, मुझे भविष्य में अन्य पीसी से डेटा प्राप्त करने के लिए इस कार्यक्रम की आवश्यकता होगी। ऐसा लगता है कि चीजों को जटिल नहीं करना चाहिए लेकिन रास्ते के हर कदम मेरे लिए जटिल हो गया है!पायथन यूडीपी प्रसारण

पृष्ठभूमि: मेरे पास शून्य सॉफ़्टवेयर अनुभव है, यह केवल कुछ है जो मुझे काम पर सौंपा गया था। किसी भी मदद की सराहना की है। कोड नीचे है। पायथन 2.7।

from threading import Thread 
import time 
from socket import * 

cs = socket(AF_INET, SOCK_DGRAM) 
cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 
cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) 
cs.connect(('<broadcast>', 5455)) 


while 1: 
    cmd = int(raw_input('send: ')) 
    if (cmd == 1): 
     cs.send('1') 
    time.sleep(1) 
+0

आपके रिसीवर का कोड कैसा दिखता है? –

+1

'यूडीपी सॉकेट' कनेक्ट नहीं करें। साथ ही, सुनिश्चित करें कि सभी फ़ायरवॉल अक्षम हैं। – tMC

+0

यह लैबव्यू में है। हालांकि कोड ठीक है, जब मैं प्रसारण नहीं कर रहा हूं तो यह ठीक काम करता है। मैंने जो कुछ बदल दिया है वह मेरा पायथन कोड प्रसारण स्थापित करने के लिए है। – TDK

उत्तर

29

आप UDP सॉकेट के लिए connect() की जरूरत नहीं है, आप की जरूरत है:

cs.sendto(data, ('255.255.255.255', 5455)) 

संपादित करें:

from socket import * 
cs = socket(AF_INET, SOCK_DGRAM) 
cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 
cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) 
cs.sendto('This is a test', ('255.255.255.255', 54545)) 

किसी अन्य मशीन मैं tcpdump भाग गया पर: यह मेरे लिए काम करने के लिए लगता है:

tcpdump -i eth1 port 54545 -XX 
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 

14:04:01.797259 IP 10.22.4.45.33749 > 255.255.255.255.54545: UDP, length 14 
0x0000: ffff ffff ffff f0de f1c4 8aa6 0800 4500 ..............E. 
0x0010: 002a 0000 4000 4011 2c81 0a16 042d ffff .*[email protected]@.,....-.. 
0x0020: ffff 83d5 d511 0016 fe38 5468 6973 2069 .........8This.i 
0x0030: 7320 6120 7465 7374 0000 0000   s.a.test.... 

आप ca n पेलोड में पाठ देखें। साथ ही प्रसारण ईथरनेट और आईपी डीएसटी addrs।

+0

हाँ, मैंने अभी कोशिश की है और यह काम नहीं करता है। इसके अलावा, मेरे पास एक लैबव्यू प्रोग्राम है जो कि पाइथन कोड करता है और यह ठीक काम करता है, इसलिए प्रसारण समस्या पायथन पक्ष पर होनी चाहिए। – TDK

+0

@ user1686820 मैंने अभी इसका परीक्षण किया है और अजगर काम करता है। (संपादन देखें)। मैं प्रयोगशाला से अपरिचित हूं इसलिए मैं आपको नहीं बता सकता कि क्या इसके साथ कुछ लेना देना है। – tMC

+0

अजीब, मैंने बस आईपी को 16 9.254.255.255 में बदल दिया और यह काम कर रहा है। मुझे लगता है कि यह एक लैबव्यू समस्या है, क्योंकि मैंने इसे पहले देखा था जब लैबव्यू को लैबव्यू करने के लिए बकाया। सहायता के लिए धन्यवाद। – TDK