NetProg

 


   

NETPROG  PRESENTATION

 

  OverView
  Functionalities
  Programming
API
C Examples
  Download
FTP example
C NetProg Programming
IP client server Connection Dialog Examples
TCP yes yes IP_PROTO_TCP TCP example
FTP yes no IP_PROTO_FTP FTP example
HTTP yes no IP_PROTO_HTTP HTTP example
SMTP yes no IP_PROTO_SMTP SMTP example
POP yes no IP_PROTO_POP POP example
DNS yes no IP_PROTO_DNS DNS example
DG yes yes IP_PROTO_DG USER_DEFINED example
IO          
STORE yes - IO_PROTO_STORE ANY  example
FIXED SIZE yes - IO_PROTO_FIOP  USER_DEFINED example
DATABASE          
ODBC yes - DB_PROTO_ODBC  DB example
ORACLE yes  -  DB_PROTO_ORACLE  DB example 
SQL/DS      DB_PROTO_SQLDS  DB example 

  

  

#include "mx.h" 
#include "ftp.h"

 

int CommandReply (MXMessage* pmessage, MXCom* pcom, void* appfield)
{
    LONG   Code     = (LONG)  MXGetValue (pmessage, "Code",     1);
    STRING Reply    = (STRING)MXGetValue (pmessage, "Reply",    1);
    LONG   Identity = (LONG)  MXGetValue (pmessage, "Identity", 1);
    STRING Value    = (STRING)MXGetValue (pmessage, "Value",    1);
    STRING Par      = (STRING)MXGetValue (pmessage, "Par",      1);

    printf ("%d, %s, %d, %s, %s\n", Code, Reply, Identity, Value, Par);

    return 1;
}

void main ()

{

   MX mx;
   MXMessage* pmessage;

   MXInit (&mx, MXSERVER, NULL, NULL, 0, NULL);

/* Establish Connection with FTP Server */

   FTPCom = MXOpenCom (&mx, "194.256.200.8", 21, IPPROTO_FTP, NULL, NULL, TRUE);
   if (!FTPCom) return 0;


   MXAddComCallBack (&mx, FTPCom, FTP_SYS, "Command", MXONSEND, Command, NULL);
   MXAddComCallBack (&mx, FTPCom, FTP_SYS, "Command_Reply", MXONRECV, CommandReply, NULL);
   MXAddComCallBack (&mx, FTPCom, FTP_SYS, "dir_reply", MXONRECV, DirReply, NULL);
   MXAddComCallBack (&mx, FTPCom, FTP_SYS, "get_reply", MXONRECV, GetReply, NULL);

/* Put messages in queue */

   pmessage = MXPutMessage (FileCom, FTP_SYS, "Command");
   MXSetValue (pmessage, "Value", 1, "USER");
   MXSetValue (pmessage, "Par", 1, "jureidini");

   pmessage = MXPutMessage (FileCom, FTP_SYS, "Command");
   MXSetValue (pmessage, "Value", 1, "PASS");
   MXSetValue (pmessage, "Par", 1, "gabriel");

   pmessage = MXPutMessage (FileCom, FTP_SYS, "dir");
   MXSetValue (pmessage, "Value", 1, "LIST");
   MXSetValue (pmessage, "Par", 1, "");

   pmessage = MXPutMessage(FileCom, FTP_SYS, "get") ;
   MXSetValue(pmessage, "FileName", 1, "t.c") ;
   MXSetValue(pmessage, "DestName", 1, "t.c") ;
   MXSetValue(pmessage, "FileType", 1, &FileType) ;
   MXSetValue(pmessage, "Command", 1, "get") ;

   MXDispatchEvents (&mx, 0);

   MXEnd (&mx);

}