Keep Python COM local server listening open in paralallel while the main code runs












0














I am trying to build a COM server to get real time information. The problem is that all other functionalities stop while localserver is opened. The rest of the code just runs when the localserver is closed.



I have searched for solutions and failed trying multiprocessing, not because this wouldn't work, I guess because I suck. Anyway, I am stuck in this part.



import pythoncom
import win32com
from win32com.server import localserver
from multiprocessing import Process

class PythonUtilities(object):

_reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
_reg_desc_ = "Change information between programs"
_reg_progid_ = "Python.LetsTalk"
_public_attrs_ = ['speech', 'roger']
_readonly_attrs_ = ['roger']
_public_methods_ = ['talktome']

def __init__(self):
self.roger = 'roger'
self.speech = None

def talktome(self,speech):
self.speech = speech
print ('New speech received: ' + self.speech)
return self.roger

### ___ ###

def runserver(mess):
print(mess)
localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

if __name__=='__main__':

pu = PythonUtilities

print ("Registering COM Server ")
win32com.server.register.UseCommandLine(pu)

# Fine so far.
# The problem starts here:

localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

#... rest of the code waiting for localserver be closed

# Experiment... Doesnt work:
#proc = Process(target=runserver, args = ('starting process',))
#proc.start()
#proc.join()


It's important to say that all messages sent from the client seem to be correctly displayed BUT ONLY AFTER I close the local server manually. I want to receive it in real time like a chat app. I mean, I want to keep the localserver opened and being able to work with the information received along the rest of the code.










share|improve this question






















  • You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
    – Simon Mourier
    Nov 12 '18 at 8:53










  • @SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
    – Eric Trevisani
    Nov 12 '18 at 19:12










  • I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
    – Simon Mourier
    Nov 13 '18 at 8:31










  • @SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
    – Eric Trevisani
    Nov 14 '18 at 3:03
















0














I am trying to build a COM server to get real time information. The problem is that all other functionalities stop while localserver is opened. The rest of the code just runs when the localserver is closed.



I have searched for solutions and failed trying multiprocessing, not because this wouldn't work, I guess because I suck. Anyway, I am stuck in this part.



import pythoncom
import win32com
from win32com.server import localserver
from multiprocessing import Process

class PythonUtilities(object):

_reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
_reg_desc_ = "Change information between programs"
_reg_progid_ = "Python.LetsTalk"
_public_attrs_ = ['speech', 'roger']
_readonly_attrs_ = ['roger']
_public_methods_ = ['talktome']

def __init__(self):
self.roger = 'roger'
self.speech = None

def talktome(self,speech):
self.speech = speech
print ('New speech received: ' + self.speech)
return self.roger

### ___ ###

def runserver(mess):
print(mess)
localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

if __name__=='__main__':

pu = PythonUtilities

print ("Registering COM Server ")
win32com.server.register.UseCommandLine(pu)

# Fine so far.
# The problem starts here:

localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

#... rest of the code waiting for localserver be closed

# Experiment... Doesnt work:
#proc = Process(target=runserver, args = ('starting process',))
#proc.start()
#proc.join()


It's important to say that all messages sent from the client seem to be correctly displayed BUT ONLY AFTER I close the local server manually. I want to receive it in real time like a chat app. I mean, I want to keep the localserver opened and being able to work with the information received along the rest of the code.










share|improve this question






















  • You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
    – Simon Mourier
    Nov 12 '18 at 8:53










  • @SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
    – Eric Trevisani
    Nov 12 '18 at 19:12










  • I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
    – Simon Mourier
    Nov 13 '18 at 8:31










  • @SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
    – Eric Trevisani
    Nov 14 '18 at 3:03














0












0








0







I am trying to build a COM server to get real time information. The problem is that all other functionalities stop while localserver is opened. The rest of the code just runs when the localserver is closed.



I have searched for solutions and failed trying multiprocessing, not because this wouldn't work, I guess because I suck. Anyway, I am stuck in this part.



import pythoncom
import win32com
from win32com.server import localserver
from multiprocessing import Process

class PythonUtilities(object):

_reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
_reg_desc_ = "Change information between programs"
_reg_progid_ = "Python.LetsTalk"
_public_attrs_ = ['speech', 'roger']
_readonly_attrs_ = ['roger']
_public_methods_ = ['talktome']

def __init__(self):
self.roger = 'roger'
self.speech = None

def talktome(self,speech):
self.speech = speech
print ('New speech received: ' + self.speech)
return self.roger

### ___ ###

def runserver(mess):
print(mess)
localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

if __name__=='__main__':

pu = PythonUtilities

print ("Registering COM Server ")
win32com.server.register.UseCommandLine(pu)

# Fine so far.
# The problem starts here:

localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

#... rest of the code waiting for localserver be closed

# Experiment... Doesnt work:
#proc = Process(target=runserver, args = ('starting process',))
#proc.start()
#proc.join()


It's important to say that all messages sent from the client seem to be correctly displayed BUT ONLY AFTER I close the local server manually. I want to receive it in real time like a chat app. I mean, I want to keep the localserver opened and being able to work with the information received along the rest of the code.










share|improve this question













I am trying to build a COM server to get real time information. The problem is that all other functionalities stop while localserver is opened. The rest of the code just runs when the localserver is closed.



I have searched for solutions and failed trying multiprocessing, not because this wouldn't work, I guess because I suck. Anyway, I am stuck in this part.



import pythoncom
import win32com
from win32com.server import localserver
from multiprocessing import Process

class PythonUtilities(object):

_reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
_reg_desc_ = "Change information between programs"
_reg_progid_ = "Python.LetsTalk"
_public_attrs_ = ['speech', 'roger']
_readonly_attrs_ = ['roger']
_public_methods_ = ['talktome']

def __init__(self):
self.roger = 'roger'
self.speech = None

def talktome(self,speech):
self.speech = speech
print ('New speech received: ' + self.speech)
return self.roger

### ___ ###

def runserver(mess):
print(mess)
localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

if __name__=='__main__':

pu = PythonUtilities

print ("Registering COM Server ")
win32com.server.register.UseCommandLine(pu)

# Fine so far.
# The problem starts here:

localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

#... rest of the code waiting for localserver be closed

# Experiment... Doesnt work:
#proc = Process(target=runserver, args = ('starting process',))
#proc.start()
#proc.join()


It's important to say that all messages sent from the client seem to be correctly displayed BUT ONLY AFTER I close the local server manually. I want to receive it in real time like a chat app. I mean, I want to keep the localserver opened and being able to work with the information received along the rest of the code.







python server com chat localserver






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 12 '18 at 0:01









Eric Trevisani

63




63












  • You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
    – Simon Mourier
    Nov 12 '18 at 8:53










  • @SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
    – Eric Trevisani
    Nov 12 '18 at 19:12










  • I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
    – Simon Mourier
    Nov 13 '18 at 8:31










  • @SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
    – Eric Trevisani
    Nov 14 '18 at 3:03


















  • You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
    – Simon Mourier
    Nov 12 '18 at 8:53










  • @SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
    – Eric Trevisani
    Nov 12 '18 at 19:12










  • I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
    – Simon Mourier
    Nov 13 '18 at 8:31










  • @SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
    – Eric Trevisani
    Nov 14 '18 at 3:03
















You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
– Simon Mourier
Nov 12 '18 at 8:53




You're not supposed to register and serve at the same time as an out-of-process server will be started by pythonw.exe when requested. So first register your server and just do nothing more. See an example here: stackoverflow.com/questions/1054849/…
– Simon Mourier
Nov 12 '18 at 8:53












@SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
– Eric Trevisani
Nov 12 '18 at 19:12




@SimonMourier, I have already seen this post. Notice that the Rob's answer marked as solved. He explains that ...register.UseCommandLine() only registers a piece of code so much so that it can be accessed even when the server application is closed. Therefore, I need to keep this server running because I need to listen the client. That's why the ...localserver.serve (). And It works. The problem is that when I run the server, everything else waits the server's process ends. Just when I close the server's window manually the code above prints all the client's "speech". It should be real time.
– Eric Trevisani
Nov 12 '18 at 19:12












I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
– Simon Mourier
Nov 13 '18 at 8:31




I understood your question and I pointed to this answer precisely because it explains how to do it. You don't have to run your server and wait for something. You run it manually only for register and unregister. After than, it will be started by pythonw.exe when someone accesses it.
– Simon Mourier
Nov 13 '18 at 8:31












@SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
– Eric Trevisani
Nov 14 '18 at 3:03




@SimonMourier, yes. You are right. There is no need... register.UseCommandLine() ...localserver.serve() does it. Afterwards, I got a solution rewriting the localserver.serve() function and starting it in a new thread.
– Eric Trevisani
Nov 14 '18 at 3:03












1 Answer
1






active

oldest

votes


















0














My problem was solved rewriting the localserver.serve() function and starting it in a new thread as the code below.



import pythoncom
from win32com.client import Dispatch # to get attributes
from win32com.server import register, factory
from threading import Thread
from queue import Queue

class PythonUtilities(object):

_reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
_reg_desc_ = "Change information between programs"
_reg_progid_ = "Python.LetsTalk"
_public_attrs_ = ['speech']
_public_methods_ = ['talktome']

queue_speech = Queue()

def talktome(self,speech):
self.queue_speech.put(speech)
print ('New speech received: ' + speech)
return 'roger'

### ___ ###

# use instead localserver.serve()
def runserver():

# added - multithread support
pythoncom.CoInitialize()

clsids = ['{D9C54599-9011-4678-B1EB-A07FD272F0AF}']

infos = factory.RegisterClassFactories(clsids)

# commented - from original localserver.serve() method
#pythoncom.EnableQuitMessage(win32api.GetCurrentThreadId())

pythoncom.CoResumeClassObjects()

pythoncom.PumpMessages()

factory.RevokeClassFactories( infos )

pythoncom.CoUninitialize()

if __name__=='__main__':

#use this
server_thread = Thread(target=runserver) # Process works as well
server_thread.start()

#instead this
#localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

#... rest of the code now works in parallel


Also I have made some improvements like Queue to get data later. I hope it can help others.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254468%2fkeep-python-com-local-server-listening-open-in-paralallel-while-the-main-code-ru%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    My problem was solved rewriting the localserver.serve() function and starting it in a new thread as the code below.



    import pythoncom
    from win32com.client import Dispatch # to get attributes
    from win32com.server import register, factory
    from threading import Thread
    from queue import Queue

    class PythonUtilities(object):

    _reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
    _reg_desc_ = "Change information between programs"
    _reg_progid_ = "Python.LetsTalk"
    _public_attrs_ = ['speech']
    _public_methods_ = ['talktome']

    queue_speech = Queue()

    def talktome(self,speech):
    self.queue_speech.put(speech)
    print ('New speech received: ' + speech)
    return 'roger'

    ### ___ ###

    # use instead localserver.serve()
    def runserver():

    # added - multithread support
    pythoncom.CoInitialize()

    clsids = ['{D9C54599-9011-4678-B1EB-A07FD272F0AF}']

    infos = factory.RegisterClassFactories(clsids)

    # commented - from original localserver.serve() method
    #pythoncom.EnableQuitMessage(win32api.GetCurrentThreadId())

    pythoncom.CoResumeClassObjects()

    pythoncom.PumpMessages()

    factory.RevokeClassFactories( infos )

    pythoncom.CoUninitialize()

    if __name__=='__main__':

    #use this
    server_thread = Thread(target=runserver) # Process works as well
    server_thread.start()

    #instead this
    #localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

    #... rest of the code now works in parallel


    Also I have made some improvements like Queue to get data later. I hope it can help others.






    share|improve this answer


























      0














      My problem was solved rewriting the localserver.serve() function and starting it in a new thread as the code below.



      import pythoncom
      from win32com.client import Dispatch # to get attributes
      from win32com.server import register, factory
      from threading import Thread
      from queue import Queue

      class PythonUtilities(object):

      _reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
      _reg_desc_ = "Change information between programs"
      _reg_progid_ = "Python.LetsTalk"
      _public_attrs_ = ['speech']
      _public_methods_ = ['talktome']

      queue_speech = Queue()

      def talktome(self,speech):
      self.queue_speech.put(speech)
      print ('New speech received: ' + speech)
      return 'roger'

      ### ___ ###

      # use instead localserver.serve()
      def runserver():

      # added - multithread support
      pythoncom.CoInitialize()

      clsids = ['{D9C54599-9011-4678-B1EB-A07FD272F0AF}']

      infos = factory.RegisterClassFactories(clsids)

      # commented - from original localserver.serve() method
      #pythoncom.EnableQuitMessage(win32api.GetCurrentThreadId())

      pythoncom.CoResumeClassObjects()

      pythoncom.PumpMessages()

      factory.RevokeClassFactories( infos )

      pythoncom.CoUninitialize()

      if __name__=='__main__':

      #use this
      server_thread = Thread(target=runserver) # Process works as well
      server_thread.start()

      #instead this
      #localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

      #... rest of the code now works in parallel


      Also I have made some improvements like Queue to get data later. I hope it can help others.






      share|improve this answer
























        0












        0








        0






        My problem was solved rewriting the localserver.serve() function and starting it in a new thread as the code below.



        import pythoncom
        from win32com.client import Dispatch # to get attributes
        from win32com.server import register, factory
        from threading import Thread
        from queue import Queue

        class PythonUtilities(object):

        _reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
        _reg_desc_ = "Change information between programs"
        _reg_progid_ = "Python.LetsTalk"
        _public_attrs_ = ['speech']
        _public_methods_ = ['talktome']

        queue_speech = Queue()

        def talktome(self,speech):
        self.queue_speech.put(speech)
        print ('New speech received: ' + speech)
        return 'roger'

        ### ___ ###

        # use instead localserver.serve()
        def runserver():

        # added - multithread support
        pythoncom.CoInitialize()

        clsids = ['{D9C54599-9011-4678-B1EB-A07FD272F0AF}']

        infos = factory.RegisterClassFactories(clsids)

        # commented - from original localserver.serve() method
        #pythoncom.EnableQuitMessage(win32api.GetCurrentThreadId())

        pythoncom.CoResumeClassObjects()

        pythoncom.PumpMessages()

        factory.RevokeClassFactories( infos )

        pythoncom.CoUninitialize()

        if __name__=='__main__':

        #use this
        server_thread = Thread(target=runserver) # Process works as well
        server_thread.start()

        #instead this
        #localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

        #... rest of the code now works in parallel


        Also I have made some improvements like Queue to get data later. I hope it can help others.






        share|improve this answer












        My problem was solved rewriting the localserver.serve() function and starting it in a new thread as the code below.



        import pythoncom
        from win32com.client import Dispatch # to get attributes
        from win32com.server import register, factory
        from threading import Thread
        from queue import Queue

        class PythonUtilities(object):

        _reg_clsid_ = '{D9C54599-9011-4678-B1EB-A07FD272F0AF}'
        _reg_desc_ = "Change information between programs"
        _reg_progid_ = "Python.LetsTalk"
        _public_attrs_ = ['speech']
        _public_methods_ = ['talktome']

        queue_speech = Queue()

        def talktome(self,speech):
        self.queue_speech.put(speech)
        print ('New speech received: ' + speech)
        return 'roger'

        ### ___ ###

        # use instead localserver.serve()
        def runserver():

        # added - multithread support
        pythoncom.CoInitialize()

        clsids = ['{D9C54599-9011-4678-B1EB-A07FD272F0AF}']

        infos = factory.RegisterClassFactories(clsids)

        # commented - from original localserver.serve() method
        #pythoncom.EnableQuitMessage(win32api.GetCurrentThreadId())

        pythoncom.CoResumeClassObjects()

        pythoncom.PumpMessages()

        factory.RevokeClassFactories( infos )

        pythoncom.CoUninitialize()

        if __name__=='__main__':

        #use this
        server_thread = Thread(target=runserver) # Process works as well
        server_thread.start()

        #instead this
        #localserver.serve(['{D9C54599-9011-4678-B1EB-A07FD272F0AF}'])

        #... rest of the code now works in parallel


        Also I have made some improvements like Queue to get data later. I hope it can help others.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 14 '18 at 3:54









        Eric Trevisani

        63




        63






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254468%2fkeep-python-com-local-server-listening-open-in-paralallel-while-the-main-code-ru%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Full-time equivalent

            さくらももこ

            13 indicted, 8 arrested in Calif. drug cartel investigation