socket长连接-client

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Simpletwt/article/details/84250293

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import socket
import sys
import time,os
from getLog import FinalLogger
import csv
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')

'''
client端
长连接,心跳
'''
class dataProcess:
    def __init__(self):
        self.logger = FinalLogger.getLogger()
        self.host = "*"
        self.port = 5557
        self.sock = self.doConnect(self.host,self.port)

    def doConnect(self,host,port):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try :
            sock.connect((host,port))
        except :
            pass
        return sock

    def sendData(self):
        try:
            alarmData = self.alarmData()
            #print alarmData
            if alarmData:
               strData = alarmData
            else:
               strData = self.heartBeat() 
            self.sock.send(strData)
            print 'send ok'  
            print strData
            self.logger.info(strData)
            fileName = "/data/FBAndIPTVsocket/scriptFile/result.csv"
            os.system(">%s" % (fileName));
        except socket.error :
            print "socket error,do reconnect "
            self.sock = self.doConnect(self.host,self.port)
            time.sleep(3)
        except :
            print 'other error occur '
            time.sleep(3)

    def alarmData(self):
        fileName = "/data/FBAndIPTVsocket/scriptFile/result.csv"
        os.system("sed -i 's/\"//g' %s" % (fileName));
        strData=""
        f = codecs.open(fileName,'r','utf-8')
        s = f.readlines()
        f.close()
        for line in s:
            strData = strData + line.encode('GBK')
        return strData

    def heartBeat(self):
        strData1 = "<AlarmStart>"
        strData2 = "IntVersion:V1.0.0"
        strData3 = "MsgSerial:"
        strData4 = "AlarmUniqueId:" + '91'
        strData5 = "AlarmUniqueClearId:"
        strData6 = "NeName:"
        strData7 = "NeIp:"
        strData8 = "SystemName:"
        strData9 = "EquipmentClass:"
        strData10 = "Version:V1.0"
        strData11 = "LocateNeName:"
        strData12 = "LocateNeType:"
        strData13 = "LocateInfo:"
        strData14 = "EventTime:"
        strData15 = "CancelTime:"
        strData16 = "VendorSeverity:三级告警"
        strData17 = "VendorAlarmId:"
        strData18 = "AlarmTitle:" + '心跳告警'
        strData19 = "ProbableCauseTxt:"
        strData20 = "AlarmText:"
        strData21 = "AlarmStatus:1"
        strData22 = "Vendor:" + '中兴'
        strData23 = "maintain_group:"
        strData24 = "<AlarmEnd>"
        strDataU8 = "\r\n" + strData1 + "\r\n" + strData2 + "\r\n" + strData3 + "\r\n" + strData4 + "\r\n" + strData5 + "\r\n" + strData6 + "\r\n" + strData8 + "\r\n" + strData9 + "\r\n" + strData10 + "\r\n" + strData11 + "\r\n"+ strData12 + "\r\n" + strData13 + "\r\n" + strData14 + "\r\n" + strData15 + "\r\n" + strData16 + "\r\n" + strData17 + "\r\n" + strData18 + "\r\n" + strData19 + "\r\n" + strData20 + "\r\n" + strData21 + "\r\n" + strData22 + "\r\n" + strData23 + "\r\n" + strData24 + "\r\n"
        strData = strDataU8.encode('GBK')
        return strData

if __name__ == "__main__":
    while True:
        nDataProcess = dataProcess();
        nDataProcess.sendData();
        time.sleep(10)

猜你喜欢

转载自blog.csdn.net/Simpletwt/article/details/84250293