Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 2.7 进程结束,退出代码为-1073741819(0xC0000005)[python,套接字] 操作系统-windows server 2012_Python 2.7_Sockets - Fatal编程技术网

Python 2.7 进程结束,退出代码为-1073741819(0xC0000005)[python,套接字] 操作系统-windows server 2012

Python 2.7 进程结束,退出代码为-1073741819(0xC0000005)[python,套接字] 操作系统-windows server 2012,python-2.7,sockets,Python 2.7,Sockets,python-2.7.11 此程序是用于在套接字上接收数据的服务器端代码。 但有时会抛出错误,我不知道它可能在哪里。 我附上了代码示例 import sys, socket, datetime, threading import conf, work_with_DB, log import subprocess class socket_server(): def __init__(self, ip, port): self.ip = ip self.port = po

python-2.7.11
此程序是用于在套接字上接收数据的服务器端代码。
但有时会抛出错误,我不知道它可能在哪里。
我附上了代码示例
import sys, socket, datetime, threading import conf, work_with_DB, log import subprocess

class socket_server():
    def __init__(self, ip, port):
    self.ip = ip
    self.port = port

    #asyncore.dispatcher.__init__(self)
    sys.setrecursionlimit(10000)
    # write to log
    log.logging('time %s' % datetime.datetime.now(), self.port)
    #log.logging('create socket on -> %s' % conf.LOCAL_server_ip[0])
    log.logging('create socket on -> %s:%d' % (self.ip, self.port),     self.port)

    #print 'create socket on -> %s' % conf.LOCAL_server_ip[0]
    print 'create socket on -> %s:%d' % (self.ip, self.port)

    self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # write to log
    log.logging('bind to socket', self.port)
    print 'bind to socket'
    #sock.bind(conf.LOCAL_server_ip)
    self.sock.bind((self.ip, self.port))
    # write to log
    log.logging('listen socket...', self.port)
    print 'listen socket...'
    self.sock.listen(5)

def run(self):
    self.conn, self.addr = self.sock.accept()
    # write to log
    #log.logging('accept connection from -> ip=%s' % addr[0])
    log.logging('accept connection from -> %s:%s...time =%s' % (self.ip, self.port, datetime.datetime.now()), self.port)

    #print 'accept connection from -> ip= %s, port= %s...time= %s' % (addr[0], addr[1], now_time)
    print 'accept connection from -> %s:%s...time =%s' % (self.ip, self.port, datetime.datetime.now())

     while True:
        # receiving TCP-data
        self.query_from_MES = self.conn.recv(10000).strip()

        if not len(self.query_from_MES) == 0:
            # log.logging('receive from -> ip =%s, port =%s...time =%s' % (addr[0], addr[1], now_time))
            log.logging('receive from -> %s:%s...time =%s' % (self.ip, self.port, datetime.datetime.now()), self.port)

            print 'query -> %s' % (self.query_from_MES)
            log.logging('query -> %s' % (self.query_from_MES), self.port)

            flag = self.query_from_MES[0:3]

            print 'flag -> %s' % (flag)
            log.logging('flag -> %s' % (flag), self.port)

            if flag == 'REQ':
                answer = self.query_from_MES + work_with_DB.get_last_receiving_data(self.port)

                print 'request from -> %s:%s' % (self.ip, self.port)
                log.logging('request from -> %s:%s' % (self.ip, self.port), self.port)

                print 'sent to MES -> %s...time =%s' % (answer, datetime.datetime.now())
                log.logging('sent to MES -> %s...time =%s' % (answer, datetime.datetime.now()), self.port)

                # send answer to client
                self.conn.send(answer)
            else:
                answer = work_with_DB.upload_data(self.query_from_MES[0:4000], self.port)
                return_msg = self.query_from_MES[0:45] + answer

                print 'send data from %s:%s' % (self.ip, self.port)
                log.logging('send data from %s:%s...time =%s' % (self.ip, self.port, datetime.datetime.now()), self.port)

                print 'sent to MES -> %s...time =%s' % (return_msg, datetime.datetime.now())
                log.logging('sent to MES -> %s...time =%s' % (return_msg, datetime.datetime.now()), self.port)

                self.conn.send(return_msg)

                if answer[0:2] == conf._SEND_ERROR:
                    #print 'address =%s:%s...sleep 5 seconds...' % (self.ip, self.port)
                    #log.logging('address =%s:%s...sleep 5 seconds...' %     (self.ip, self.port))
                    #time.sleep(5)
                    #self.conn.settimeout(10)

                    print 'connection closed'
                    log.logging('connection closed', self.port)
                    self.conn.close()

                    #print 'socket closed'
                    #log.logging('socket closed')
                    #self.sock.close()
                    try:
                        self.run()
                        print 'restart server'
                        log.logging('restart server...', self.port)
                    except Exception as e:
                        # returns the name of the exception
                        print '__________EXCEPTION__________ %s :%s' %(type(e).__name__, e.message)
                       # returns the name of the exception
                        log.logging('__________EXCEPTION__________ %s :%s' % (type(e).__name__, e.message), self.port)

                        print 'START anew socket_server_9217'
                        log.logging('START anew socket_server_9217', self.port)
                        subprocess.Popen("socket_server_9217", shell=False)

        else:
            #print 'address =%s:%s...sleep 5 seconds...' % (self.ip, self.port)
            #log.logging('address =%s:%s...sleep 5 seconds...' % (self.ip, self.port))
            #time.sleep(5)
            #self.conn.settimeout(10)

            print 'connection closed'
            log.logging('connection closed', self.port)
            self.conn.close()

            #print 'socket closed'
            #log.logging('socket closed')
            #self.sock.close()

            try:
                self.run()
                print 'restart server'
                log.logging('restart server...', self.port)
            except Exception as e:
                # returns the name of the exception
                print '__________EXCEPTION__________ %s :%s' % (type(e).__name__, e.message)
                # returns the name of the exception
                log.logging('__________EXCEPTION__________ %s :%s' % (type(e).__name__, e.message), self.port)

                print 'START anew socket_server_9217'
                log.logging('START anew socket_server_9217', self.port)
                subprocess.Popen("socket_server_9217", shell=False)
s = socket_server(conf._IP, conf._PORT_9217)
s.run()

请回溯?请详细提供有关错误的信息此错误像messageBox一样从python.exe抛出。这个脚本工作了几个小时,然后引发了一个错误日志文件,其中没有任何关于异常的信息,我应该在哪里添加回溯?请回溯?请详细提供有关错误的信息。这个错误像python.exe中的messageBox一样抛出。这个脚本工作了几个小时,然后引发了一个错误日志文件。没有关于异常的任何信息。我应该在哪里添加回溯?