36 lines
753 B
Text
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();
|
|
};
|
|
}
|
|
}
|
|
}
|