WSLinkServer (C 函数)

WSLinkServer

是一个 WSTP 类型,代表一个 WSTP 链接服务器.

更多信息

  • WSTP 链接服务器对象是管理 TCPIP 链接服务器网络界面的对象的句柄.
  • 在使用 Wolfram 符号传递协议(Wolfram Symbolic Transfer Protocol- WSTP)的一般过程中,创建的连接在一对一标准(one-to-one standard)下发生作用,即当程序 A 与程序 B 连接时,只有 A 和 B 可以使用在 A 与 B 之间建立的通信终端. 这种一对一模式与传统的客户端 / 服务器通信模式不同,后者用一对多模式推广连接,即服务器有一个连接,且有多个客户端连接到此连接. 该 WSTP 链接服务器功能允许用户创建一个可以利用 Wolfram 符号传递协议提供一对多连接的程序.
  • 此程序与链接服务器对象交互,以检索由链接服务器终端的输入 WSTP 连接创建的新 WSLINK 对象.
  • 在一下两件事中任意一件发生之前,链接服务器会把输入连接排成队:要么程序调用 WSWaitForNewLinkFromLinkServer(),要么程序通过 WSRegisterCallbackFunctionWithLinkServer() 用链接服务器对象注册异步回调函数. 若前者发生,链接服务器会在每次 WSWaitForNewLinkFromLinkServer() 调用时从连接队列中向程序返回一个新的 WSLINK 对象. 若后者发生,链接服务器对象会用一个 WSLINK 对象异步调用回调函数,该 WSLINK 对象在每次调用时传递为回调函数的参数,直到连接队列变空.
  • WSTP 的标头文件 wstp.h 已对 WSLinkServer 作出声明.

范例

基本范例  (1)

#include "wstp.h"

void operateLinkServer(WSENV env)
{
    int error;
    WSLinkServer linkServer;
    WSLINK theLink;


    linkServer = WSNewLinkServer(env, 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 */ }

    ...

    WSCLose(theLink);

    WSShutdownLinkServer(linkServer);
}