免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ditty
打印 上一主题 下一主题

[Tuxedo] 求助tuxedo问题,急急急. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-12-15 08:56 |只看该作者

求助tuxedo问题,急急急.

ubb配置
#file: ubbconfig

*RESOURCES
IPCKEY      50000
MASTER      SITE1
MODEL       SHM
MAXCONV     20

*MACHINES
KEVIN       LMID=SITE1

TUXDIR    = "D:\PROGRA~1\BEASYS~1\Tuxedo"
APPDIR    = "d:\documents\products\tuxedo\quick start\lab\qs-14"
TUXCONFIG = "d:\documents\products\tuxedo\quick start\lab\qs-14\tuxconfig"
MAXCONV          = 25

*GROUPS
GROUP1      LMID=SITE1 GRPNO=1

*SERVERS
simpserv    SRVGRP=GROUP1 SRVID=1 CONV=Y

*SERVICES
CONVERS



服务端代码
#include <stdio.h>;
#include <ctype.h>;
#include "atmi.h"

#define SRECV        1
#define SSEND        2
#define SDONE        3

void
CONVERS(TPSVCINFO *rqst)
{
  static state = SRECV;
  long   len, revent;
  char   *buf;

   buf=tpalloc("STRING", NULL, 80);
  
  for ( ; ; )
  {
    switch(state)
    {
    case SRECV:
       if(tprecv(rqst->;cd, &buf, &len, 0, &revent )==-1)
       {
         if(tperrno == TPEEVENT && revent == TPEV_SENDONLY)
         {
           userlog("state change from receive to send";
           state = SSEND;
         }
         else
         {
           tpreturn(TPFAIL, 0, rqst->;data, 0, 0);
         }
       }
       userlog("tprecv(): %s", buf);
       break;
    case SSEND:
       strcpy(buf, "all done & protocol complete";
       if (tpsend(rqst->;cd, buf, 0, 0, &revent)== -1)
       {
         userlog("tpsend(%d): %s",
                 revent, tpstrerror(tperrno));
       }
       else
       {
         userlog("SENT MESSAGE";
       }
       state = SDONE;
       break;
    case SDONE:
       tpfree(buf);
       tpreturn(TPSUCCESS, 0, rqst->;data, 0, 0);
       break;
    }
  }
}



客户端代码
#include <stdio.h>;
#include "atmi.h"

main(int argc, char *argv[])
{
  int   ret, cd;      /* General loop counter       */
  char *buf;          /* Pointer to buffer          */
  long  len;          /* Buf length                 */
  long  revent;       /* Event type if tpsend fails */

  /* Connect to TUXEDO - tpinit() */
   if (tpinit((TPINIT *) NULL) == -1){
     printf("Failed to join application\n";
     exit(1);
   }

  if ((buf = (char *)tpalloc("STRING", NULL, 1024)) == NULL)
  {
    printf("tpalloc(): %s\n", tpstrerror(tperrno));
    tpterm();
    exit(-1);
  }

  if (cd = tpconnect("CONVERS", NULL, 0, TPSENDONLY) == -1)
  {
    printf("tpconnect(): %s\n", tpstrerror(tperrno));
    tpfree(buf);
    tpterm();
    exit(-1);
  }

  strcpy(buf, "humpty dumpty";

  if (tpsend(cd, buf, (long)strlen(buf), 0, &revent) == -1)
  {
    printf("tpsend(): %s\n", tpstrerror(tperrno));
  }

  strcpy(buf, "mickey mouse";

  if (tpsend(cd, buf, (long)strlen(buf), 0, &revent) == -1)
  {
    printf("tpsend(): %s\n", tpstrerror(tperrno));
  }

  if (tpsend(cd, NULL, 0, TPRECVONLY, &revent) == -1)
  {
    printf("tpsend(): %s\n", tpstrerror(tperrno));
  }

  if (tprecv(cd, &buf, &len, 0, &revent) == -1)
  {
    printf("tprecv(): %s\n", tpstrerror(tperrno));
  }
  printf("recv\n";
  
  printf("tprecv() %s\n", buf);

  tpdiscon(cd);
  tpfree(buf);
  tpterm();
}

论坛徽章:
0
12 [报告]
发表于 2003-12-15 08:57 |只看该作者

求助tuxedo问题,急急急.

直接保存、编译、运行即可

论坛徽章:
0
13 [报告]
发表于 2003-12-15 15:05 |只看该作者

求助tuxedo问题,急急急.

楼上的兄弟,先谢谢了.
例子我看过很多次了,现在我的问题是运行有时正常有时不正常..真没办法.

论坛徽章:
0
14 [报告]
发表于 2003-12-15 17:30 |只看该作者

求助tuxedo问题,急急急.

ditty你的问题我也碰到过,你把传递的指针改为指针引用试试

论坛徽章:
0
15 [报告]
发表于 2003-12-24 09:00 |只看该作者

求助tuxedo问题,急急急.

还是不行.

论坛徽章:
0
16 [报告]
发表于 2003-12-24 13:43 |只看该作者

求助tuxedo问题,急急急.

这问题我也碰到过,用IDEBUG单步调试执行一点问题都没有, 但正式执行就不对了.真是头大. 后来也不知道改了些什么就好了. 但现在还是不知道原因, 胸闷
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP