digitalmars.D - Socket + Thread - any working example??
- Vincent (37/37) Jun 01 2010 Hello, guys!
Hello, guys! Still fighting with my server example and cannot catch what's wrong. Just simple example: ========================================== import std.stdio; import std.socket; import core.thread; int main(){ auto srv = new TcpSocket; srv.bind(new InternetAddress(1000)); srv.listen(10); writefln("Listen on port 1000"); for(Socket cli = srv.accept(); srv.isAlive(); cli = srv.accept()){ auto t = new ServiceClientThread(cli); t.start(); } return 0; } class ServiceClientThread : Thread { this(Socket remote){ cli = remote; super(&run); } private: Socket cli; void run() { cli.send("hello!\n"); cli.close(); } } ========================================== After first client connects to the server, it receives (as expected) 'hello!' line, but after this server dies, his output: Listen on port 1000 std.socket.SocketAcceptException: Unable to accept socket connection I.e. second call to 'accept' kills server. WHY? Can somebody help me, please? Any working example (in my configuration)? (dmd 2.046, Phobos)
Jun 01 2010