diff --git a/reference/SocketClient/SocketClient.cpp b/reference/SocketClient/SocketClient.cpp new file mode 100644 index 000000000..1a5e78fd1 --- /dev/null +++ b/reference/SocketClient/SocketClient.cpp @@ -0,0 +1,21 @@ +#include + +using namespace Upp; + +String Request(const String& r) +{ + Socket s; + if(!ClientSocket(s, CommandLine().GetCount() ? CommandLine()[0] : "127.0.0.1", 3214)) { + Cout() << "Unable to connect to server!\n"; + SetExitCode(1); + return Null; + } + s.Write(r + '\n'); + return s.ReadUntil('\n'); +} + +CONSOLE_APP_MAIN +{ + Cout() << Request("time") << '\n'; + Cout() << Request("33") << '\n'; +} diff --git a/reference/SocketClient/SocketClient.upp b/reference/SocketClient/SocketClient.upp new file mode 100644 index 000000000..594059f26 --- /dev/null +++ b/reference/SocketClient/SocketClient.upp @@ -0,0 +1,12 @@ +description "Example of using client Socket - its counterpart is SocketServer\377"; + +uses + Core, + Web; + +file + SocketClient.cpp; + +mainconfig + "" = ""; + diff --git a/reference/SocketClient/init b/reference/SocketClient/init new file mode 100644 index 000000000..0e020094a --- /dev/null +++ b/reference/SocketClient/init @@ -0,0 +1,5 @@ +#ifndef _SocketClient_icpp_init_stub +#define _SocketClient_icpp_init_stub +#include "Core/init" +#include "Web/init" +#endif diff --git a/reference/SocketServer/SocketServer.cpp b/reference/SocketServer/SocketServer.cpp new file mode 100644 index 000000000..bfbe63842 --- /dev/null +++ b/reference/SocketServer/SocketServer.cpp @@ -0,0 +1,26 @@ +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + Socket server; + if(!ServerSocket(server, 3214)) { + Cout() << "Unable to initialize server socket!\n"; + SetExitCode(1); + return; + } + Cout() << "Waiting for requests..\n"; + for(;;) { + Socket s; + if(server.Accept(s)) { + String w = s.ReadUntil('\n'); + Cout() << "Request: " << w << '\n'; + if(w == "time") + s.Write(AsString(GetSysTime())); + else + s.Write(AsString(3 * atoi(~w))); + s.Write("\n"); + } + } +} diff --git a/reference/SocketServer/SocketServer.upp b/reference/SocketServer/SocketServer.upp new file mode 100644 index 000000000..2616342c5 --- /dev/null +++ b/reference/SocketServer/SocketServer.upp @@ -0,0 +1,12 @@ +description "Example of using server Socket - its counterpart is SocketClient\377"; + +uses + Core, + Web; + +file + SocketServer.cpp; + +mainconfig + "" = ""; + diff --git a/reference/SocketServer/init b/reference/SocketServer/init new file mode 100644 index 000000000..6cefabdd0 --- /dev/null +++ b/reference/SocketServer/init @@ -0,0 +1,5 @@ +#ifndef _SocketServer_icpp_init_stub +#define _SocketServer_icpp_init_stub +#include "Core/init" +#include "Web/init" +#endif