WSNewLinkServerWithPort (C Function)

WSLinkServer WSNewLinkServerWithPort(WSENV e, unsigned short p, void *c, int *err)

starts a new TCPIP link server on port p, using context object c, and returning error conditions in err.


  • In the normal course of using the Wolfram Symbolic Transfer Protocol, connections made between processes function on a one-to-one standard, meaning that when program A connects to program B, only A and B can use the communication endpoints established between A and B. This one-to-one model differs from a traditional client/server communication model where a server advertises a connection in a one-to-many mode where the server has one connection and many clients connect to that one connection. The WSTP Link Server functionality allows the user to create a program that offers a one-to-many connection using the Wolfram Symbolic Transfer Protocol.
  • WSNewLinkServerWithPort() creates a TCPIP link protocol WSTP endpoint on the network that allows many clients to connect.
  • WSNewLinkServerWithPort() creates a WSTP endpoint that can only be connected to by a WSTP interface 4 compatible program.
  • WSNewLinkServerWithPort() allows the WSTP library pick the interface to use for the link server.
  • The link server object will queue incoming connections that can be processed synchronously with the function WSWaitForNewLinkFromLinkServer(), or asynchronously by registering a callback function with WSRegisterCallbackFunctionWithLinkServer().
  • The context object c may be a pointer to any object needed by the program to manager link connections created by the link server. The user can retrieve the context object using the function WSContextFromLinkServer().
  • WSNewLinkServerWithPort() sets err to 0 if the function succeeds and a nonzero value if the function fails.
  • The nonzero values that indicate an error condition correspond to the WSE error codes in wstp.h and as returned by WSError().
  • Use WSShutdownLinkServer() to close down the link server mechanism.


Basic Examples  (1)

#include "wstp.h"

void operateLinkServerOnPort(WSENV env, unsigned short port)
    int error;
    WSLinkServer linkServer;
    WSLINK theLink;

    linkServer = WSNewLinkServerWithPort(env, port,
        NULL /* No context object for this example */, &error);
    if(error != WSEOK)
    { /* Handle error */ }

    theLink = WSWaitForNewLinkFromLinkserver(linkServer, &error);
    if(theLink == (WSLINK)0 || error != WSEOK)
    { /* Handle error */ }