470,855 Members | 1,155 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,855 developers. It's quick & easy.

ThreadingTCPServer, asyncore and Client-to-Client communication

I've been trying to create a "byte streaming server", it's basically a
chat server, but I'd like to use it for transfering large amounts of
data between two connected clients. Sounds simple enough, but I'm
having a difficult time implementing it.

If Client #1 connects, then that thread is consumed with listening for
data from that client. If Client #2 connects, that client is on a
different thread, and therefore I don't see how I can have data sent
from Client #1 to be streamed down to Client #2. (and how can client
process #1 accept data from client #2 because it's listening to client
#1?) Obviously I'm missing something.

I've looked at asyncore/asynchat, as well as ThreadingTCPServer... but
there's something I'm missing. Is there a simple way to have an
object listen over two ports, and what comes into one port will be
sent down the another?

Any advice, or a good swift kick in the right direction would be
appreciated.
Dustin
Jul 18 '05 #1
2 1778
Dustin wrote:
[...]
If Client #1 connects, then that thread is consumed with listening for
data from that client. If Client #2 connects, that client is on a
different thread, and therefore I don't see how I can have data sent
from Client #1 to be streamed down to Client #2. [...] I've looked at asyncore/asynchat, as well as ThreadingTCPServer... but
there's something I'm missing. Is there a simple way to have an
object listen over two ports, and what comes into one port will be
sent down the another?


Yes; look up the select module in the standard library (on which
asyncore is built).

Also, note that sockets are not bound to a single thread. If
you don't want to use select, you might have one thread that
reads from socket x and writes to socket y, and another thread
that reads from y and write to x. Some perfectly reasonable
systems have a reading thread and a writing thread for each
socket.
--
--Bryan
Jul 18 '05 #2
du****@jabberdust.com (Dustin) wrote in message news:<81**************************@posting.google. com>...
I've been trying to create a "byte streaming server", it's basically a
chat server, but I'd like to use it for transfering large amounts of
data between two connected clients. Sounds simple enough, but I'm
having a difficult time implementing it.


investigate os.select; you don't even need multiple threads for this operation.
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Paolo Invernizzi | last post: by
2 posts views Thread by Freddie | last post: by
5 posts views Thread by David M. Wilson | last post: by
16 posts views Thread by Rob Snyder | last post: by
reply views Thread by Ktm | last post: by
3 posts views Thread by Jos | last post: by
6 posts views Thread by KraftDiner | last post: by
7 posts views Thread by Paul Kozik | last post: by
reply views Thread by davy zhang | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.