home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sockpli.zip / TEST.PLI < prev    next >
Text File  |  1995-06-27  |  4KB  |  95 lines

  1. *PROCESS GS NEST MACRO XREF(S) A(S) SOURCE OPTIONS;
  2. *PROCESS LANGLVL(SAA2) NOT(' ') FLAG(W);
  3. *PROCESS LIMITS(EXTNAME(31)) MARGINS(2, 100);
  4. *PROCESS PREFIX(NOFIXEDOVERFLOW),LINECOUNT(55);
  5.  TEST: PROC (HOSTID) OPTIONS (MAIN);
  6.  
  7.  %NOPRINT;
  8.  %INCLUDE OS2PLI;
  9.  %INCLUDE OS2;
  10.  %INCLUDE SOCKET;
  11.  %INCLUDE IN;
  12.  %INCLUDE NETDB;
  13.  %INCLUDE NERRNO;
  14.  %INCLUDE UTILS;
  15.  %INCLUDE SOCKUTIL;
  16.  %PRINT;
  17.  
  18.  dcl SAB                     /* Session anchor block         */
  19.                              type COM_Handle;
  20.  /*                          ----------------                */
  21.  
  22.  dcl SrvAdr                  /* Details of caller's connexion*/
  23.                              type SOCKADDR_IN;
  24.  /*                          -----------------               */
  25.  
  26.  dcl L_SrvAdr                /* Length of sockaddr structure */
  27.                              fixed bin (31);
  28.  /*                          ---------------                 */
  29.  
  30.  dcl Buffer                  /* Socket call accepted on      */
  31.                              char (90) init ('Testing 1 2 3');
  32.  /*                          --------------------------------*/
  33.  
  34.  dcl H_HostEnt               /* Hostent data area            */ 
  35.                              type @hostent;                     
  36.  /*                          --------------                  */ 
  37.                      
  38.  dcl HostID                  /* Name of host as set by caller*/
  39.                              char (100) varying;
  40.  /*                          -------------------             */
  41.  
  42.  dcl HostName                /* Name of remote host          */ 
  43.                              char (128) varz init ('GNOME.');
  44.  /*                          --------------------------------*/
  45.  
  46.  dcl P_HAddr                 /* Base of HAddr                */
  47.                              pointer based;
  48.  /*                          --------------                  */     
  49.  
  50.  dcl HAddr                   /* Hostent data area            */
  51.                              fixed bin (31) unsigned based;
  52.  /*                          ------------------------------  */
  53.                                                                   
  54.  if HostID  = '' then
  55.     HostName = HostID;
  56.  SAB.SockRc = sock_init();
  57.  if (SAB.SockRc < 0) then
  58.     display ('Sock Init Error '││EDIT(sock_errno(),'zz,zz9'));
  59.  else
  60.  do;
  61.     SAB.ConSock = socket(AF_INET, SOCK_STREAM, 0);
  62.     if (SAB.ConSock < 0) then
  63.        display ('Socket Error '││EDIT(sock_errno(),'zz,zz9'));
  64.     else
  65.     do;
  66.        H_HostEnt = gethostbyname(ADDR(HostName));
  67.        SrvAdr.Sin_Family      = AF_INET;
  68.        SrvAdr.Sin_Port        = HTONS(1000);
  69.        SrvAdr.Sin_Addr.S_Addr = H_HostEnt=>h_addr_list->P_HAddr->HAddr;
  70.        L_SrvAdr               = STG(SrvAdr);
  71.        SAB.SockRc             = connect(SAB.ConSock,
  72.                                         ADDR(SrvAdr),
  73.                                         L_SrvAdr);
  74.        if (SAB.SockRc < 0) then
  75.           display ('Connect Error '││EDIT(sock_errno(),'zz,zz9'));
  76.        else
  77.        do;
  78.           SAB.SockRc = send(SAB.ConSock, ADDR(Buffer), STG(Buffer), 0);
  79.           if (SAB.SockRc < 0) then
  80.              display ('Send Error '││EDIT(sock_errno(),'zz,zz9'));
  81.           else
  82.           do;
  83.              SAB.SockRc = recv(SAB.ConSock, ADDR(Buffer),
  84.                                STG(Buffer), 0);
  85.              if (SAB.SockRc < 0) then
  86.                 display ('Recv Error '││EDIT(sock_errno(),'zz,zz9'));
  87.              else
  88.                 display (LEFT(Buffer,SAB.SockRc));
  89.           end;
  90.        end;
  91.     end;
  92.  end;
  93.  
  94.  END TEST;
  95.