int tpconnect(char *name,char *data,long length,long flags)
描述:与名为name的service建立连接
参数:name:service的名字
*data:要发送的数据
length:数据的长度
flags:可以为TPNOTRAN,TRNOTIME, TPNOBLOCK和TPSIGRSTRT。
TPSENDONLY:发送者只能发送数据,被调用的service只能接收数据
TPRECVONLY:接收者只能接收数据,被调用的service只能发送数据
返回值:成功返回一个标识该连接的标识符,失败为-1
int tpsend(int cd,char *data,long length,long flags,long *revent)
描述:用于发送数据
参数:cd:tpconnect()的返回值,用于标识该连接
data:要发送的数据
length:要发送的数据的长度
flags:可以为TPNOBLOCK, TPNOTIME, TPSIGRSTRT。
TPRECVONLY:把发送权交给接收者,在接收者那里会产生事
件TPEV_SENDONLY
revent:当返回值为-1时,如果tperrno=TPEEVENT,那么表明有事件发生。
可能的事件有TPEV_DISCONIMM,当会话的发起者调用tpdiscon(),tpreturn()和tpcommit()时,会话的从属者会收到该事件。如果有网络故障等,那么会话的发起者也会收到该事件。
TPEV_SVCFAIL:会话的发起者会收到该事件,表明会话的从属者调用
tpreturn(TPFAIL,…….)或tpreturn(TPEXIT,……..),并且该会话的从属者不再拥有该控制权TPEV_SVCERR。会话的发起者会收到该事件,表明会话的从属者调用tpreturn(TPSUCCESS,…….)返回,并且该会话的从属者不在拥有该控制权。
返回值:失败为-1,如果tperrno=TPEEVENT,那么导致该调用失败的事件保存在revent中
int tprecv(int cd,char **data,long *length,longth flags,long *revent)
描述:用于接收数据
参数:data:接收的数据放在该缓冲区中
length:接收数据的长度
flags:可以为TPNOCHANGE,TPNOBLOCK, TPNOTIME, TPSIGRSTRT。
revent:TREV_DISCONIMM与tpsend()中的含义一样
TPRECVONLY:该会话的发送者把发送权交给接收者,在接收者这里会产生事件TPEV_SENDONLY。
TPEV_SVCFAIL, TPEV=SVCERR 与tpsend()中的含义一样。
TPEV_SVCSUCC:该会话的从属者已成功完成并关闭该会话,那么会话的发起者会收到该事件,表明该会话已成功结束。
返回值:失败为-1,如果tperrno=TPEEVENT,那将导致该调用失败的事件保存在revent中。
int tpdiscon(int cd)
描述:关闭标志符为cd的会话
参数:tpconnect()的返回值,用于标识该连接
返回值:失败为-1
与消息通信方式有关的ATMI
int tpnotify(CLIENTID *clientid,char *data,long len,long flags)
描述:一个客户端或服务器端程序调用该函数给某一个客户端发消息
参数:clientid:TPSVCINFO结构体中的clientid字段,可从Service的TPSVCINFO
结构体得到,也可通过MIB调用得到。
data:该消息所包含得数据,要用tpalloc()函数分配得缓冲区来接收
len:该数据的长度,只适合CARRAY类型
flags:可设为TPNOBLOCK, TPNOTIME, TPSIGRSTRT, TPACK, TPNOBLOCK和TPNOTIME, TPSIGRSTRT的含义与tpcall()中的一样
TPACK:如果设置了,会返回详细的出错消息。
返回值:失败返回-1
int tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long flags)
描述:一个客户端或服务端程序调用该函数给某一个客户端或多个客户端发消息
参数:lmid:给该台机器上的所有客户端发消��
usrname:给名为usrname的客户端发消息
cltname:给组名cltname的一组客户端发消息
data:该消息所包含的数据,要用tpalloc()分配的缓冲区来接收
len:该数据的长度,只适合CARRAY类型
flags:可设置为TPNOBLOCK, TPNOTIME, 和TPSIGRSTRT
返回值:失败为-1
说明:lmid,usrname和cltname用于确定要发送的范围。如果某个值为NULL,则表示给所有的客户端发送消息
int tpchkunsol()
描述:如果消息的通知方式为DIP_IN,那么可用该函数检查消息。如果为IGNORE,SIGNAL,该函数将立即返回
如果有未处理的消息,该函数将调用消息处理函数进行处理,直到所有的消息都处理完,该函数才会返回。
返回值:成功返回本次调用处理的消息个数,失败为-1
void(*tpsetunsol(void(_TMDLLENTRY *)(*disp)(char *data, long len,long flags)))()
描述:用于设置消息处理函数,调用消息处理函数disp对消息进行处理。
参数:disp:消息处理函数的名称
data:该消息所包含的数据,要用tpalloc()函数分配的缓冲区来接收
len:该数据的长度,只适合CARRAY类型
flags:现在没用,设为0
返回值:成功返回0,失败为-1