Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
UppHub
Status & Roadmap
FAQ
Authors & License
Forums
Funding U++
Search on this site









SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo

UnixSocketServer

 

Example of using server UnixSocket - its counterpart is UnixSocketClient

 

 

UnixSocketServer.cpp

 

#include <Core/Core.h>

 

using namespace Upp;

 

String GetSocketPath()

{

    String temp;

#ifdef PLATFORM_WIN32

    temp = GetEnv("TEMP");

#else

    temp = GetTempPath();

#endif

    return AppendFileName(temp, "upp-unixsocket.socket");

}

 

CONSOLE_APP_MAIN

{

    Socket server;

    String path = GetSocketPath();

    DeleteFile(path); // "unlink" existing file system socket

    if(!server.ListenFileSystem(path, 5, false)) { // Reuse option is not available on Windows

        Cout() << "Unable to initialize server socket!\n";

        SetExitCode(1);

        return;

    }

    Cout() << "Waiting for requests..\n";

    for(;;) {

        Socket s;

        if(s.Accept(server)) {

            String w = s.GetLine();

            Cout() << "Request: " << w << " from: " << s.GetPeerPid() << '\n';

            if(w == "time")

                s.Put(AsString(GetSysTime()));

            else

                s.Put(AsString(3 * atoi(~w)));

            s.Put("\n");

        }

    }

}

 

 

 

 

Do you want to contribute?