如何在服务中获得客户端的IP?

yizhao yizhao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我写了个服务如下,调用TMIB,但是获得为空

#include <fml32.h>
#include <tpadm.h>
#include <stdio.h>
#include <ctype.h>
#include <atmi.h> /* TUXEDO Header File */
#include <userlog.h> /* TUXEDO Header File */

/* tpsvrinit is executed when a server is booted, before it begins
processing requests. It is not necessary to have this function.
Also available is tpsvrdone (not used in this example), which is
called at server shutdown time.
*/

#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{
/* Some compilers warn if argc and argv aren't used. */
argc = argc;
argv = argv;

/* userlog writes to the central TUXEDO message log */
userlog("Welcome to the simple server");
return(0);
}

/* This function performs the actual service requested by the client.
Its argument is a structure containing among other things a pointer
to the data buffer, and the length of the data buffer.
*/

#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
MYMIB(TPSVCINFO *rqst)
#else
MYMIB(rqst)
TPSVCINFO *rqst;
#endif
{
long blen;
FBFR32 *ibuf;

char mystr[1000]="";

ibuf = (FBFR32 *)tpalloc("FML32", NULL, 10000);
userlog("0");
Fchg32(ibuf, TA_OPERATION, 0, "GET", 0);
Fchg32(ibuf, TA_CLASS, 0, "T_CLIENT", 0);
userlog("1");
Fprint32(ibuf);

userlog("2");
if (tpcall(".TMIB", (char *)ibuf, 0, (char **)&ibuf, &blen, 0) == -1)
{
printf("tpcall(.TMIB) failed: %s\n", tpstrerror(tperrno));
Fprint32(ibuf);
userlog("call error");
tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
}
userlog("3");
/* if (tpadmcall(ibuf, &ibuf, 0) == -1)
{
printf("tpcadmcall() failed: %s\n", tpstrerror(tperrno));
Fprint32(ibuf);
return(-1);
}*/


Fget32(ibuf,TA_NADDR,0,mystr,0);

userlog("%s",ibuf);

tpfree((char *)ibuf);

tpterm();

tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
}


谁能解决一下这个问题?
...全文
评论 5
收藏 已收藏
分享
返回顶部
yizhao
中间件 1,237 成员 6,839 内容