2010-04-18 16 views
8

मैं एक 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 की कोशिश की है और कुछ भी नहीं आता है। क्या कोई मुझे समझने में मदद कर सकता है?

+0

क्या आपको पोर्ट 514 पर बाध्य करते समय सर्वर में एक सॉकेट मिल रहा है। आतंक EPERM ("अनुमति अस्वीकृत")? यदि नहीं, तो ध्यान दें कि आप रूट के रूप में चल रहे हैं, यह जानना उपयोगी होगा। अगर आपको अनुमति अस्वीकार नहीं है, तो यूडीपी/514 पर कुछ अन्य प्रक्रिया सुन रही है? 'नेटस्टैट-ए' आपको यूनिक्स पर बताएगा। – msw

+0

यह 514 की तुलना में अन्य बंदरगाहों पर मेरी उबंटू मशीन पर चलता है, syslogd शायद पोर्ट 514 ले रहा है। लेकिन मेरी विंडोज मशीन पर यह पूरी तरह से चलता है। – Elvar

+0

मैंने क्लाइंट सॉफ़्टवेयर को आजमाने के लिए किवी सिस्लॉग सर्वर स्थापित करने का प्रयास किया। यह काम करता है, जब मैं क्लाइंट ऐप में कुछ डालता हूं तो किवी सर्वर इसे प्राप्त करता है। कोड स्निपेट के लिए – Elvar

उत्तर

3

समस्या मिली, कोड सही था, केवल Kiwi Syslog संदेश जेनरेटर मैं काम नहीं कर रहा था। किवी सिस्लॉग सर्वर के साथ-साथ लॉग फॉरवर्डर नामक एक शानदार प्रोब्राम आता है जो सभी प्रकार के इवेंट मैसेज (इवेंट व्यूअर को ऑफर करने के तरीके से परे) को एक सिसलॉग सर्वर पर अग्रेषित करने के लिए डिज़ाइन किया गया है। उसमें एक टेस्ट फीचर भी है ... जो काम करता है :)

संबंधित मुद्दे