WSRegisterCallbackFunctionWithLinkServer (C 函数)

void WSRegisterCallbackFunctionWithLinkServer(WSLinkServer s, WSNewLinkCallbackFunction f)

用链接服务器 s 注册回调函数 f.

更多信息

  • WSRegisterCallbackFunctionWithLinkServer() 允许一个程序用链接服务器对象 s 安装回调函数 f,那么当该链接服务器接收到一个输入连接时,它会异步将这个新连接通过该回调函数通知给该程序.
  • 这个链接服务器对象会异步对该回调函数 f 异步回调,所以程序必须小心保护共享数据结构的访问,可能产生通过 f 异步访问的问题.
  • 若链接服务器的连接队列中有多个连接等候,该链接服务器会为每个队列中的连接都调用一次回调函数 f.

范例

基本范例  (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)
{
    WSActivate(link);
    WSPutFunction(link,"Print",1);
        WSPutString(link, "Hello Client Program");
    WSEndPacket(link);
    WSFlush(link);

    ...

    WSClose(link);
}