On Tue, Sep 27, 2011 at 1:55 PM, David Kao <[email protected]> wrote:
> My bad for not being clear, but actually, the client program is a > separate binary that I plan to spawn as a subprocess, which should > connect to the server. > > Basically, the answer I am getting now is that I am never sure when > the server starts listening on a port. I need to take it on faith that > within 1 sec of running twistd the port is being listened. Or perhaps > check it using netstat or something from the outside ... ugly. > So, you want to be sure that the server is listening before trying to connect from an independent client? Why? Shouldn't this client just try to connect and act accordingly if there is no server listening? It's as if you want to be sure that http://www.google.com/ is up and will answer you. Why not just type http://www.google.com/ in a browser? > > I have gone through almost the entire tutorial. I am looking for the > **source code** for internet.TCPServer > > David Kao > > > > On Tue, Sep 27, 2011 at 5:53 PM, Enrique Samson Jr. <[email protected]> > wrote: > > On Tue, Sep 27, 2011 at 5:28 PM, David Kao <[email protected]> wrote: > >> > >> I have an existing program that connects to a TCP port to serve data. I > >> need to > >> > >> 1) start a TCPServer > >> > >> 2) start my program and tell it which port to connect to > > > > In case you already did, you might want to take a deeper look again at > the > > Twisted Core Documentation. The Writing a TCP Server section answers your > > question #1, Writing a TCP Client section answers your question #2. > > > >> > >> Actually, I want to do all this in twistd. And now I am looking at > >> something like this which is even a bigger headache > >> > >> internet.TCPServer( 4321, serverFactory > >> ),setServiceParent(serviceCollection) > > > > Of course you can do all these in twisted. But in this context, it > doesn't > > make sense to run both in the same twisted application. > > > >> > >> I revise my question. > >> > >> Can I rely on reactor.listenTCP being called right after > >> serverFactory.startFactory is called? > >> > >> I hope listenTCP isn't queued as a reactor "task" after > >> serverFactory.startFactory. If it's done all in one uninterrupted > >> thread execution, then I can just queue "start_the_other_program" > >> inside startFactory via a reactor.callLater. Correct? > > > > The reverse is what is guaranteed: serverFactory.startFactory will be > called > > when you do reactor.listenTCP. > > > >> > >> Enrique, thanks for the link. I think I saw that too. I traced it > >> since reactor.listenTCP returns a port, and so on and so forth. > >> > >> However, I have not been able to find code for internet.TCPServer. I > >> would like to be able to trace the code top down. Can someone help? > > > > You can find it here. > > > >> > >> Thanks! > >> > >> David Kao > >> > > > > --Enrique > > > > > > _______________________________________________ > > Twisted-Python mailing list > > [email protected] > > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > > > > > > _______________________________________________ > Twisted-Python mailing list > [email protected] > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >
_______________________________________________ Twisted-Python mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
