Получение программы на сокете UDP на Python для приема сообщений от клиента Syslog? - PullRequest
8 голосов
/ 18 апреля 2010

Я пытаюсь написать прослушиватель системного журнала, и до сих пор хорошо получается заставить его принимать входящие сообщения через TCP, но я также хочу, чтобы функционировал UDP.

Это код сервера UDP, который я использую, который работает с помощью клиентского приложения Python. У меня также есть другое приложение, которое также работает только с помощью клиентского приложения Python.

# 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()

Я попытался с помощью генератора сообщений системного журнала Kiwi и Snare отправить сообщения системного журнала на сервер UDP, но ничего не происходит. Может ли кто-нибудь помочь мне понять?

1 Ответ

3 голосов
/ 19 апреля 2010

Нашел проблему, код был идеальным, просто генератор сообщений системного журнала Kiwi, который я использовал, не работал. Наряду с сервером системного журнала Kiwi поставляется удивительная пробрамма под названием Log Forwarder, предназначенная для пересылки всех видов сообщений о событиях (помимо того, что может предложить средство просмотра событий) на сервер системного журнала. У этого также есть тестовая функция ... которая работает:)

...