#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);
}
|