langs a-z
This commit is contained in:
parent
db842d013d
commit
d066446780
11389 changed files with 98361 additions and 1020 deletions
36
Task/Echo-server/Objeck/echo-server.objeck
Normal file
36
Task/Echo-server/Objeck/echo-server.objeck
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
36
Task/Echo-server/Oz/echo-server-1.oz
Normal file
36
Task/Echo-server/Oz/echo-server-1.oz
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
declare
|
||||
ServerSocket = {New Open.socket init}
|
||||
|
||||
proc {Echo Socket}
|
||||
case {Socket getS($)} of false then skip
|
||||
[] Line then
|
||||
{System.showInfo "Received line: "#Line}
|
||||
{Socket write(vs:Line#"\n")}
|
||||
{Echo Socket}
|
||||
end
|
||||
end
|
||||
|
||||
class TextSocket from Open.socket Open.text end
|
||||
in
|
||||
{ServerSocket bind(takePort:12321)}
|
||||
{System.showInfo "Socket bound."}
|
||||
|
||||
{ServerSocket listen}
|
||||
{System.showInfo "Started listening."}
|
||||
|
||||
for do
|
||||
ClientHost ClientPort
|
||||
ClientSocket = {ServerSocket accept(accepted:$
|
||||
acceptClass:TextSocket
|
||||
host:?ClientHost
|
||||
port:?ClientPort
|
||||
)}
|
||||
in
|
||||
{System.showInfo "Connection accepted from "#ClientHost#":"#ClientPort#"."}
|
||||
thread
|
||||
{Echo ClientSocket}
|
||||
|
||||
{System.showInfo "Connection lost: "#ClientHost#":"#ClientPort#"."}
|
||||
{ClientSocket close}
|
||||
end
|
||||
end
|
||||
7
Task/Echo-server/Oz/echo-server-2.oz
Normal file
7
Task/Echo-server/Oz/echo-server-2.oz
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
declare
|
||||
Socket = {New class $ from Open.socket Open.text end init}
|
||||
in
|
||||
{Socket connect(port:12321)}
|
||||
{Socket write(vs:"Hello\n")}
|
||||
{System.showInfo "Client received: "#{Socket getS($)}}
|
||||
{Socket close}
|
||||
15
Task/Echo-server/Perl-6/echo-server.pl6
Normal file
15
Task/Echo-server/Perl-6/echo-server.pl6
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
my $socket = IO::Socket::INET.new:
|
||||
localhost => 'localhost',
|
||||
localport => 12321,
|
||||
listen => 1;
|
||||
|
||||
while $socket.accept -> $conn {
|
||||
say "Accepted connection";
|
||||
async {
|
||||
while $conn.recv -> $stuff {
|
||||
say "Echoing $stuff";
|
||||
$conn.send($stuff);
|
||||
}
|
||||
$conn.close;
|
||||
}
|
||||
}
|
||||
31
Task/Echo-server/PureBasic/echo-server.purebasic
Normal file
31
Task/Echo-server/PureBasic/echo-server.purebasic
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
NewMap RecData.s()
|
||||
OpenWindow(0, 100, 200, 200, 100, "Echo Server", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget )
|
||||
InitNetwork()
|
||||
CreateNetworkServer(1, 12321)
|
||||
|
||||
Repeat
|
||||
Event = NetworkServerEvent()
|
||||
ClientID = EventClient()
|
||||
|
||||
If Event = #PB_NetworkEvent_Connect ; When a new client has been connected...
|
||||
AddMapElement(RecData(), Str(ClientID))
|
||||
|
||||
ElseIf Event = #PB_NetworkEvent_Data
|
||||
*Buffer = AllocateMemory(20000)
|
||||
count = ReceiveNetworkData(ClientID, *Buffer, 20000)
|
||||
For i = 1 To count
|
||||
RecData(Str(ClientID)) + Mid( PeekS(*Buffer, count), i , 1)
|
||||
If Right( RecData(Str(ClientID)), 2) = #CRLF$
|
||||
SendNetworkString (ClientID, RecData(Str(ClientID)))
|
||||
Debug IPString(GetClientIP(ClientID)) + ":" + Str(GetClientPort(ClientID)) + " " + RecData(Str(ClientID))
|
||||
RecData(Str(ClientID)) = ""
|
||||
EndIf
|
||||
Next
|
||||
FreeMemory(*Buffer)
|
||||
|
||||
ElseIf Event = #PB_NetworkEvent_Disconnect ; When a client has closed the connection...
|
||||
DeleteMapElement(RecData(), Str(ClientID))
|
||||
EndIf
|
||||
|
||||
Event = WaitWindowEvent(10)
|
||||
Until Event = #PB_Event_CloseWindow
|
||||
10
Task/Echo-server/REBOL/echo-server.rebol
Normal file
10
Task/Echo-server/REBOL/echo-server.rebol
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
server-port: open/lines tcp://:12321
|
||||
forever [
|
||||
connection-port: first server-port
|
||||
until [
|
||||
wait connection-port
|
||||
error? try [insert connection-port first connection-port]
|
||||
]
|
||||
close connection-port
|
||||
]
|
||||
close server-port
|
||||
Loading…
Add table
Add a link
Reference in a new issue