WSNewLinkServer (C 函数)

WSLinkServer WSNewLinkServer(WSENV e, void *c, int *err)

使用上下文对象 c,在来自 WSTP 库的端口和界面上开始一个新的 TCPIP 链接服务器,并用 err 返回错误状况.

更多信息

  • 在使用 Wolfram 符号传递协议(Wolfram Symbolic Transfer Protocol- WSTP)的一般过程中,创建的连接在一对一标准(one-to-one standard)下发生作用,即当程序 A 与程序 B 连接时,只有 A 和 B 可以使用在 A 与 B 之间建立的通信终端. 这种一对一模式与传统的客户端 / 服务器通信模式不同,后者用一对多模式推广连接,即服务器有一个连接,且有多个客户端连接到此连接. 该 WSTP 链接服务器功能允许用户创建一个可以利用 Wolfram 符号传递协议提供一对多连接的程序.
  • WSNewLinkServer() 在允许多个客户端连接的网络上创建一个 TCPIP 链接协议 WSTP 终端.
  • WSNewLinkServer() 创建一个只能用 WSTP 接口4(WSTP interface 4)兼容程序连接的 WSTP 终端.
  • WSNewLinkServer() 允许 WSTP 库选出可为链接服务器所用的端口和界面.
  • 链接服务器对象会将输入连接排成队列,这些输入连接或可用函数 WSWaitForNewLinkFromLinkServer() 同步处理,或可通过用函数 WSRegisterCallbackFunctionWithLinkServer() 注册一个回调函数异步处理.
  • 该上下文对象 c 可能是程序需要用来管理由链接服务器创建的链接连接的任何对象的指针. 用户可使用函数 WSContextFromLinkServer() 来检索上下文对象.
  • 若函数成功,则 WSNewLinkServer()err 设置为0;若函数失败,则设为非零值.
  • 说明有错误状况的非零值相当于 wstp.h 中的 WSE 错误代码,并由 WSError()返回.
  • 可使用 WSShutdownLinkServer() 关闭该链接服务器机制.

范例

基本范例  (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);
}