तो, बहुत ही सरल कोड है कि मैं का उपयोग करने के कोशिश कर रहा हूँ यहाँ है: http://wiki.python.org/moin/UdpCommunicationसरल अजगर यूडीपी सर्वर: मुसीबत स्थानीय होस्ट के अलावा अन्य ग्राहकों से पैकेट प्राप्त करने
(भी यहाँ): भेजा जा रहा है:
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
MESSAGE = "Hello, World!"
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
प्राप्त: जब मैं अपने कंप्यूटर पर दोनों अनुप्रयोगों को चलाने
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data
कोड ठीक काम करता है। मैंने अपने लैपटॉप पर प्रेषण कोड डाल दिया:
UDP_IP="IP address for my computer"
बाकी सब कुछ वही है। फिर भी, कुछ भी नहीं होता है। मैं गलत तरीके से क्या कर रहा हूँ? मैंने वायरशर्क का इस्तेमाल किया और यह निर्धारित किया कि पैकेट भेजा और प्राप्त किया जा रहा है; हालांकि, अजगर कार्यक्रम पैकेट प्राप्त नहीं कर रहा है। मैं बड़ी उलझन में हूं।
किसी भी मदद की बहुत सराहना की जाती है। अग्रिम धन्यवाद। जब यूडीपी पैकेट प्राप्त करने के लिए बाध्य करने के मामले में
sock.bind(("", UDP_PORT)) # could also use "0.0.0.0"
ध्यान दें कि ऑपरेटिंग सिस्टम के व्यवहार पूरी तरह से तार्किक (और न ही संगत) नहीं है, विशेष रूप से बहुस्त्र्पीय यातायात के लिए:
आपके उत्तर के लिए धन्यवाद। Socket.INADDR_ANY को छोड़कर प्रत्येक विकल्प ने कुछ भी नहीं किया, और socket.INADDR_ANY ने एक त्रुटि दी और कहा कि यह एक int पाया गया है, लेकिन एक स्ट्रिंग की उम्मीद है, इसलिए मैंने उपयोग किया: sock.bind ((str (socket.INADDR_ANY), UDP_PORT)), लेकिन यह उत्पादित: socket.gaierror: [Errno 11004] getaddrinfo विफल हुआ जब मैंने वास्तव में कनेक्ट करने का प्रयास किया। –
हम्म, अजीब। मैं अभी विचारों से बाहर हूं ... –
अरग, हाँ, सॉकेट .INADDR_ANY सिर्फ एक 'int' पर मैप किया गया है जो पाइथन 'सॉकेट' मॉड्यूल के साथ बेकार है। मैं जवाब से इसे हटा दूंगा। (बेशक यह आपकी समस्या का समाधान नहीं करता है।) –