Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python udp服务器解析并将接收到的数据发送到MySQL_Python_Mysql_Sockets_Udp - Fatal编程技术网

python udp服务器解析并将接收到的数据发送到MySQL

python udp服务器解析并将接收到的数据发送到MySQL,python,mysql,sockets,udp,Python,Mysql,Sockets,Udp,我正在进行一些概念验证研究项目,并拥有侦听接收数据的python udp套接字服务器。 客户端将UDP上的数据名和姓氏发送到服务器。 我希望在UDP套接字服务器端接收该数据,并在接收时使用两个字段f_name和l_name将该数据发送到mysql数据库 import socket UDP_IP = "192.168.1.10" UDP_PORT = 9000 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind((

我正在进行一些概念验证研究项目,并拥有侦听接收数据的python udp套接字服务器。 客户端将UDP上的数据名和姓氏发送到服务器。 我希望在UDP套接字服务器端接收该数据,并在接收时使用两个字段f_name和l_name将该数据发送到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
这个例子取自web,通过这个服务器我可以在控制台上获取数据。 我希望它如下所示,当然代码/概念可以更改。这个问题可以用scapy sniffer解决,但那是肮脏的。 从概念上讲,我希望有一些类似于: 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服务器,我看不到任何消息,所以解析数据的功能似乎不适用于服务器。
当您收到数据时,您不需要调用解析函数,只要打印数据内容,服务器上的任何帮助或指导都将不胜感激。添加带有注释的行并查看结果

while True:
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
    print "received message:", data
    parse(data) # Call the Function

你有什么问题?任何异常?如果在def parsedata函数中,我看不到任何数据。若只是启动udp服务器,我在控制台上看到数据即将到来,但我希望它能够发送到db