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);
}