| Создание |
| О компании | Программ | Устройств | Linux |
| Контакты | Обучение |
| Инвестиционные проекты |
LsoL |
Обслуживание | ||||||
| Продукция | Советы | |||||||
Contents:
OverviewВозможности: Заголовочный файл (хидер) : UsageEasy type of usage is download file from http/ftp. For it host program call SRVOpenUrl,then call SRVRecv until EOF, then call SRVClose. When host program may receive info about state of downloading through callback fnction. The file may be automaticly stored it on local storage device if filename has been directed to SRVOpenUrl If the host program want to send anything by POST method it may use SRVSend or SRVprintf functions For uoload (and download too) the file to FTP you may use SRVOpenFTP function, then you may.use SRVFTPUploadFile (or SRVFTPDownloadFile) for upload/download a file from (to) local storage. Or you may use SRVFTPInitUpload and SRVFTPInitDownload to begin upload/download the program data, and then you may use SRVDSend, SRVDprintf, (or SRVDRecv for download). Use SRVFTPEndData after transfer. For read FTP directory use SRVFTPInitDir and then SRVDRecv. Also you may use SRVFTPchmod,SRVFTPRename,SRVFTPRm,SRVFTPMkDir,SRVFTPRmDir to manipulate with files/directories. Functiostype of stream typedef void * ServerStream; typedef int (* StateCallback)(ServerStream * stream, void * data, int state, int procent, int total_size); Parameters: stream -- pointer to stream that was returned by SRVOpenUrl data' -- user s data, the same thst host program set in SRVOpenUrl state defined here: STATE_CONECTING STATE_LOGIN STATE_INITDATA STATE_DOWNLOAD_IN_PROGRESS STATE_UPLOAD_IN_PROGRESS STATE_DONE procent -- the procentage (if avilable) total_size -- the size of requested URL (if avilable) Return value: If this callback return zero, the server will still work the request. If this callback return subzero the server understan that host program If this callback return value above zero, the server return it to client as error code and return error page. ServerStream SRVOpenUrl(char * url, int type, StateCallback callback=NULL, void * data=NULL, int post_size=0, char * user=NULL, char * passw=NULL, char * filename=NULL); Parameters: The url -- The URL to get The type -- defined here TYPE_HTTP_GET TYPE_HTTP_POST TYPE_HTTP_FTPDIR TYPE_HTTP_FTPR TYPE_HTTP_FTPW TYPE_FLAG_ASINH data -- user defined data -- will be transfer to callback function post_size -- size of POST (if need) user', 'passw -- autorization data (if need) filename -- to save URL to local file, direct filename. (if need) Return value: If sucess return.the pointer to Stream NULL if error. int SRVRecv(ServerStream * stream, void * bufer, int size); Parameters: The stream -- pointer to stream that was returned by SRVOpenUrl The bufer -- bufer to recive The size -- size of bufer Return value: Number of bytes that has been recive. Zero if EOF int SRVSend(ServerStream * stream, void * bufer, int size); Parameters: The stream -- pointer to stream that was returned by SRVOpenUrl The bufer -- bufer to send The size -- size of bufer Return value: Number of bytes that has been send. Zero if error int SRVprintf(ServerStream * stream, char * format, ...); Parameters: The stream -- pointer to stream that was returned by SRVOpenUrl The format -- format like in stdio printf ... params by format Return value: Number of bytes that has been send. Zero if error void SRVClose(ServerStream * stream); Parameters: The stream -- pointer to stream that was returned by SRVOpenUrl ServerStream SRVOpenFTP(char * host, char * user="anonymous", char * passw="@"); int SRVFTPUploadFile(ServerStream * stream, char * filename, char * localfile); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server localfile -- the pathname of file on local PC Return value: Zero if Ok Code of error if fail. int SRVFTPDownloadFile(ServerStream * stream, char * filename, char * localfile); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server localfile -- the pathname of file on local PC Return value: Zero if Ok Code of error if fail. int SRVFTPInitUpload(ServerStream * stream, char * filename); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server Return value: Zero if Ok Code of error if fail. int SRVFTPInitDownload(ServerStream * stream, char * filename); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server Return value: Zero if Ok Code of error if fail. void SRVFTPEndData(ServerStream *stream) Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. int SRVFTPRm(ServerStream * stream, char * filename); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server Return value: Zero if Ok Code of error if fail. int SRVFTPchmod(ServerStream * stream, char * filename, int mode); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server mode -- file attributes: Bits format: bit: | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | for: | owner | owner | owner | group | group | group | any | any | any | type: | exec | write | read | exec | write | read | exec | write | read | MODE_ANY_READ MODE_ANY_WRITE MODE_ANY_EXEC MODE_GROUP_READ MODE_GROUP_WRITE MODE_GROUP_EXEC MODE_OWNER_READ MODE_OWNER_WRITE MODE_OWNER_EXEC Return value: Zero if Ok Code of error if fail. int SRVFTPInitDir(ServerStream * stream, char * filename); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename -- the name of file on remote server Return value: Zero if Ok Code of error if fail. int SRVFTPMkDir(ServerStream * stream, char * dir); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. dir -- the name of directory on remote server Return value: Zero if Ok Code of error if fail. int SRVFTPRmDir(ServerStream * stream, char * dir); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. dir -- the name of directory on remote server Return value: Zero if Ok Code of error if fail. int SRVFTPRename(ServerStream * stream, char * filename_from, char * filename_to); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. filename_from -- old name of file on remote server filename_to -- new name of file on remote server Return value: Zero if Ok Code of error if fail. int SRVDSend(ServerStream * stream, void * bufer, int size); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. The bufer -- bufer to send The size -- size of bufer Return value: Number of bytes that has been send. Zero if error int SRVDprintf(ServerStream * stream, char * format, ...); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. The format -- format like in stdio printf ... params by format Return value: Number of bytes that has been send. Zero if error int SRVDRecv(ServerStream * stream, void * bufer, int l); Parameters: The stream -- pointer to stream that was returned by SRVOpenFTP. The bufer -- bufer to recive The size -- size of bufer Return value: Number of bytes that has been recive. Zero if error ulong GetRemoteIP(ServerStream * stream); Parameters: The stream -- pointer to stream that was transfer to callback function. Return value: IP address of remote. int GetRemoteAddr(void * addr, int buflen); Parameters: The stream -- pointer to stream that was transfer to callback function. Return value: address of remote.in sockaddr struct int GetSocket(ServerStream * stream); Parameters: The stream -- pointer to stream that was transfer to callback function. Return value: socket The host program may load all params for module from separate file, int LoadConfig(char * filename="ftp.cfg"); Parameters: The filename -- name of configuration file. Return value: Zero if sucess. Subzero if fail void SetConfigParam(char * param, int val); Parameters: The param -- name of param val -- value. void SetConfigParam(char * param, char * val); Parameters: The param -- name of param val -- value. To get current values of configuration params you may use next functions: int GetConfigParamInt(char * param); Parameters: The param -- name of param char *SetConfigParamStr(char * param); Parameters: The param -- name of param |