Wie liest man einen UDP-Port aus

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Judge of Death
User
Beiträge: 2
Registriert: Montag 25. Juni 2012, 16:18

Hallo Miteinander

Ich arbeite an einem Script, um die Daten eines UDP-Port's zu bearbeiten und dann in eine Datenbank abzufüllen.

Das Ding funktioniert, nur bekomme ich die Daten nicht von der Schnittstelle. Ich habe bei dem Server die Logaddresse 127.0.0.1 mit dem Port 27015 (Counter-Strike Source Server) angegeben, jetzt muss ich das mit python empfangen. Ich hab mir mal einen kleinen Testscript zur Hilfe genommen:

Code: Alles auswählen

#!/usr/bin/env python

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

try:
    s.bind(("127.0.0.1", 27015))
    while True:
        daten, addr = s.recvfrom(1024)
        print "[%s] %s" % (addr[0], daten)
finally:
    s.close()

Das Ganze bricht mit dieser Fehlermeldung ab:

Code: Alles auswählen

Traceback (most recent call last):
  File "./stats.py", line 7, in <module>
    s.bind(("127.0.0.1", 27015))
  File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
Die Adresse wird ja bereits durch dernm Server genutzt, wie also mach ich das jetzt am besten?


Greez Judge
deets

Indem du die Doku liest und statt bind (was einen Server aufmacht) connect benutzt zb.

http://docs.python.org/library/socket.h ... et.connect
Judge of Death
User
Beiträge: 2
Registriert: Montag 25. Juni 2012, 16:18

Hallo Deets

danke für den Tipp, das habe ich so gar nicht bedacht.

Ich versuchs mal weiter, besten Dank

Greez Judge
Antworten