On 2012-03-05 09:38, Dmitry Olshansky wrote:
...
while(working){

if(select(set, null, null, 10) > 0){ //10 usec wait on a socket, may do
plain 0
sock.accept(); // no blocking here
}
set.reset();
set.add(sock);
receiveTimeout(dur!"us"(1), (int code){ working = false; });
}
...

Thanks for the answers.

However, I still have a problem:
What I'd really like to do is have one thread listening for incoming connections and spawn a new thread for each connection (it's a simple HTTP server, I'm interested in learning about sockets & threads, I'm not looking for a HTTP server). "Socket.accept()" returns a Socket whenever a connection is made, my intention was to pass this to a new thread, but as I pointed out in the initial post I can't find a way to do so, and I'm unable to find a solution to this problem from your replies. Does this mean that it's recommended to keep the listening socket and all the sockets it spawns in a single thread? I don't know a whole lot on how sockets works, but can't that easily cause poor performance when you're reading from or writing to multiple sockets?

I've not been able to find some D2 code that use multiple threads in conjunction with sockets, but if anyone know about some examples I'd be happy to read that.

Reply via email to