0
我正在研究一些概念研究研究項目的證明,並有python udp套接字服務器來監聽收到的數據。 客戶端將UDP上的數據NAME和FAMILY NAME發送到服務器。 我想在UDP套接字服務器端收到該數據,並在接收時將此數據發送到帶有兩個字段f_name和l_name的mysql數據庫。Python的udp服務器解析併發送收到的數據到MySQL
import socket
UDP_IP = "192.168.1.10"
UDP_PORT = 9000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
print "UDP SERVER STARTED!"
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "MSG Received:", data
這個例子取自網絡,並與此服務器我在控制檯上獲取數據。 我希望如下所示,當然可以更改代碼/概念。這可以用scapy sniffer來解決,但那會很髒。 概念我想喜歡有TI的東西: 1. SOCEKT服務器接收收到 2.解析數據數據,該數據發送到MySQL
我開始考慮到這一點,但不工作
import socket
import MySQLdb
UDP_IP = "192.168.1.10"
UDP_PORT = 9000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
print "UDP SERVER STARTED!"
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data
def parse(data):
db = MySQLdb.connect("localhost","db_user","db_pass","directory_db")
cursor = db.cursor()
# Params to insert into DB
f_nameObj = re.search(r'NAME: (.*?) .*', data, re.M|re.I)
if f_name:
f_name = f_nameObj.group(1)
l_nameObj = re.search(r'SURNAME: (.*?) .*', data, re.M|re.I)
if l_name:
l_name = l_nameObj.group(1)
# MySQL EXECUTION
cursor.execute("""
INSERT INTO dictionary (f_name, l_name) VALUES (%s, %s)""",(f_name,l_name))
#
db.commit()
有了這種類型的udp服務器,我看不到任何消息,因此似乎函數解析數據不能與服務器一起工作。 任何幫助或指導,將不勝感激
你的問題是什麼?有什麼異常? – shazin
如果在def解析(數據)函數中,我看不到任何數據。如果只是啓動udp服務器,我看到控制檯上的數據即將到來,但我想在發送到數據庫的功能 – user1627588