RosettaCodeData/Task/Echo-server/Objeck/echo-server.objeck
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

36 lines
753 B
Text

use Net;
use Concurrency;
bundle Default {
class SocketServer {
id : static : Int;
function : Main(args : String[]) ~ Nil {
server := TCPSocketServer->New(12321);
if(server->Listen(5)) {
while(true) {
client := server->Accept();
service := Service->New(id->ToString());
service->Execute(client);
id += 1;
};
};
server->Close();
}
}
class Service from Thread {
New(name : String) {
Parent(name);
}
method : public : Run(param : Base) ~ Nil {
client := param->As(TCPSocket);
line := client->ReadString();
while(line->Size() > 0) {
line->PrintLine();
line := client->ReadString();
};
}
}
}