WSContextFromLinkServer (C 函数)

void * WSContextFromLinkServer(WSLinkServer s, int *err)

当创建 s 时,会返回与链接服务器 s 相关的上下文对象.

更多信息

  • 链接服务器创建函数 WSNewLinkServer()WSNewLinkServerWithPort()WSNewLinkServerWithPortAndInterface() 都允许调用者对连接服务器传递一个隐性语境的上下文对象. 此上下文对象可以是程序为处理从链接服务器来的呼入连接所需的任何对象. 此上下文对象在与 WSNewLinkCallbackFunction 机制一起使用时最为有用.
  • WSContextFromLinkServer() 遇到错误时,它会给出 err 表示错误值并返回(void *)0. 若 WSContextFromLinkServer() 成功,则 err 会包含零.
  • 表示错误状况的非零值相当于 wstp.h 中由 WSError()返回的 WSE 错误代码.

范例

基本范例  (1)

#include "wstp.h"

void NewLinkCallbackFunction(WSLinkServer server, WSLINK link);

WSLinkServer startLinkServer(WSENV env)
{
    WSLinkServer theServer;
    int error;

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

    WSRegisterCallbackFunctionWithLinkServer(theServer,
        NewLinkCallbackFunction);

    return theServer;
}


void NewLinkCallbackFunction(WSLinkServer server, WSLINK link)
{
    void *theContext;
    int error;

    WSActivate(link);
    WSPutFunction(link,"Print",1);
        WSPutString(link, "Hello Client Program");
    WSEndPacket(link);
    WSFlush(link);

    theContext = WSContextFromLinkServer(server, &error);
    if(error != WSEOK)
    { /* Handle error */ }

    ...

    WSClose(link);
}