By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,921 Members | 1,442 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,921 IT Pros & Developers. It's quick & easy.

ThreadingTCPServer, asyncore and Client-to-Client communication

P: n/a
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
Share this Question
Share on Google+
2 Replies


P: n/a
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

P: n/a
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.