i port tcp ve alınan veri ve MySQL veritabanında verileri kaydetmek küçük dize işlemden sonra dinlemek bir python komut var çalışmaya başlar Bir süre önce, mysql bağlantı hatası aldım ve sonra sunucu asıldı ve çökmeden sonra aşağı inmek !!!sunucu çökmesi
benim kod şudur:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
import os
import threading
import mysql.connector
import sys
import signal
from datetime import datetime, date,time
import time as timehelper
#//******defines******\\#
HOST = '127.0.0.1'
PORT = 8889
Dconn = mysql.connector.connect(user='root', password='peiman64',host='127.0.0.1',database='prisoner',charset='utf8')
print('databased stablished.')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(50)
print ('Socket listening started')
def processString(stri,addr):
arr = stri.split('#')
arr = arr[2].split(',')
print(arr)
if len(arr)<7 :
sys.exit()
imei=arr[0]
password=arr[1]
indate=arr[2]
intime=arr[3]
gislat=arr[4]
gislong=arr[5]
speed=arr[6]
btrylvl=arr[13]
cursor = Dconn.cursor(buffered=True)
devCountresult = "select COUNT(*) as num,dvid from devices where code="+imei
cursor.execute(devCountresult)
resC,dId = cursor.fetchone()
if resC ==0 :
cursor.execute("INSERT INTO devices (code) VALUES ("+imei+")")
devId = cursor.lastrowid
else:
devId = dId
d = date(int(indate[4:8]), int(indate[2:4]), int(indate[0:2]))
t = time(int(intime[0:2]), int(intime[2:4]), int(intime[4:6]))
fTime = datetime.combine(d, t)
fTime =int(datetime.timestamp(fTime))
cursor.execute("INSERT INTO raw (device, longt, lat,battery, recv_time,dev_time) VALUES ('"+format(devId)+"','"+gislong+"','"+gislat+"','"+format(btrylvl)+"','"+format(timehelper.time())+"','"+format(fTime)+"')")
insertedId = cursor.lastrowid
serverResult = "select * FROM servers where status='active';"
cursor.execute(serverResult)
serer = cursor.fetchall()
for ser in serer :
cursor.execute("INSERT INTO `row_sent` (`signal_id`, `server_id`) VALUES ('"+format(insertedId)+"', '"+format(ser[0])+"');")
print('aaa')
Dconn.commit()
print(insertedId)
if insertedId>0:
return 1
else:
return 0
#//******socket treadingg******\\#
def clientthread(conn,addr):
while True:
data = conn.recv(1024)
adata = data.strip().decode('utf-8')
if len(adata) > 0:
processString(adata,addr)
reply ="#AL#1###\r\n"
conn.send(bytes(reply, 'UTF-8'))
#//******----------------******\\#
while True:
conn, addr = s.accept()
print ('Connected with ' + addr[0] + ':' + str(addr[1]))
t = threading.Thread(target=clientthread, args=((conn),(addr),))
t.start()
s.close()
sunucu temiz ve herhangi başka bir yazılım yok!
Buradaki kodumdaki sorun nedir?
sunucu çökmesi bu tür geçiş maksimum açık dosya sınırı için happend