मैं एक Syslog श्रोता लिखने की कोशिश कर रहा हूं और टीसीपी के माध्यम से आने वाले संदेशों को स्वीकार करने के लिए अब तक इतना अच्छा है लेकिन मैं भी यूडीपी को काम करना चाहता हूं।साइज़ल क्लाइंट से संदेशों को स्वीकार करने के लिए पायथन में यूडीपी सॉकेट प्रोग्राम प्राप्त करना?
यह यूडीपी सर्वर कोड है जिसका उपयोग मैं कर रहा हूं, जो एक पायथन क्लाइंट ऐप का उपयोग करके काम करता है। मेरे पास एक और ऐप भी है जो पाइथन क्लाइंट ऐप का उपयोग करके भी काम करता है।
# Server program
# UDP VERSION
from socket import *
# Set the socket parameters
host = "localhost"
port = 514
buf = 1024
addr = (host,port)
# Create socket and bind to address
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
# Receive messages
while 1:
data,addr = UDPSock.recvfrom(buf)
if not data:
print "Client has exited!"
break
else:
print "\nReceived message '", data,"'"
# Close socket
UDPSock.close()
इस कोड का उपयोग करके मैं सर्वर को भेज सकता हूं और इसे कोड प्रदर्शित कर सकता हूं।
# Client program
from socket import *
# Set the socket parameters
host = "localhost"
port = 514
buf = 1024
addr = (host,port)
# Create socket
UDPSock = socket(AF_INET,SOCK_DGRAM)
def_msg = "===Enter message to send to server===";
print "\n",def_msg
# Send messages
while (1):
data = raw_input('>> ')
if not data:
break
else:
if(UDPSock.sendto(data,addr)):
print "Sending message '",data,"'....."
# Close socket
UDPSock.close()
मैं यूडीपी सर्वर से syslog संदेश भेजने के लिए कीवी Syslog संदेश जेनरेटर और Snare की कोशिश की है और कुछ भी नहीं आता है। क्या कोई मुझे समझने में मदद कर सकता है?
क्या आपको पोर्ट 514 पर बाध्य करते समय सर्वर में एक सॉकेट मिल रहा है। आतंक EPERM ("अनुमति अस्वीकृत")? यदि नहीं, तो ध्यान दें कि आप रूट के रूप में चल रहे हैं, यह जानना उपयोगी होगा। अगर आपको अनुमति अस्वीकार नहीं है, तो यूडीपी/514 पर कुछ अन्य प्रक्रिया सुन रही है? 'नेटस्टैट-ए' आपको यूनिक्स पर बताएगा। – msw
यह 514 की तुलना में अन्य बंदरगाहों पर मेरी उबंटू मशीन पर चलता है, syslogd शायद पोर्ट 514 ले रहा है। लेकिन मेरी विंडोज मशीन पर यह पूरी तरह से चलता है। – Elvar
मैंने क्लाइंट सॉफ़्टवेयर को आजमाने के लिए किवी सिस्लॉग सर्वर स्थापित करने का प्रयास किया। यह काम करता है, जब मैं क्लाइंट ऐप में कुछ डालता हूं तो किवी सर्वर इसे प्राप्त करता है। कोड स्निपेट के लिए – Elvar