EnglishРусский  

   ..

   ftp.g

   http.g

   internet.g

   ping.g

   proxy.g

   socket.g

   strinet.g

Bookmark and Share

Ads

Perfect Automation tool
All-In-One: Script editor, Launcher, Scheduler, Keyboard & Mouse Recorder. Try now!

CreateInstall
Freeware and commercial installers.

Cell Phone Batteries
Batteries Plus offers batteries for laptop, camcorder, cell phone, camera.

Gentee needs your help!
How to advertise with us
 
laptop battery

source\lib\Internet\internet.g
  1 
  2 define
  3 {
  4    AF_UNIX               = 1 
  5    AF_INET               = 2 
  6    
  7    IPPROTO_IP            = 0           /* dummy for IP */
  8    IPPROTO_ICMP          = 1           /* control message protocol */
  9    IPPROTO_IGMP          = 2           /* internet group management protocol */
 10    IPPROTO_GGP           = 3           /* gateway^2 (deprecated) */
 11    IPPROTO_TCP           = 6           /* tcp */
 12    IPPROTO_PUP           = 12          /* pup */
 13    IPPROTO_UDP           = 17          /* user datagram protocol */
 14    IPPROTO_IDP           = 22          /* xns idp */
 15    IPPROTO_ND            = 77          /* UNOFFICIAL net disk proto */
 16    IPPROTO_RAW           = 255         /* raw IP packet */
 17    
 18    SOCK_STREAM           = 1               /* stream socket */
 19    SOCK_DGRAM            = 2               /* datagram socket */
 20    SOCK_RAW              = 3               /* raw-protocol interface */
 21    SOCK_RDM              = 4               /* reliably-delivered message */
 22    SOCK_SEQPACKET        = 5               /* sequenced packet stream */
 23 
 24    WSADESCRIPTION_LEN    =  257 //256
 25    WSASYS_STATUS_LEN     =  129 //128
 26    INVALID_SOCKET        =  0xFFFFFFFF
 27    SOCKET_ERROR          =  0xFFFFFFFF
 28 }
 29 
 30 define <export>   
 31 {
 32    ERRINET_DLLVERSION    =  0x0001   // Не поддерживаемая версия 
 33    ERRINET_HTTPDATA                  // Получены не HTTP данные 
 34    ERRINET_USERBREAK                 // процесс прерван пользователем
 35    ERRINET_OPENFILE                  // Невозможно открыть файл 
 36    ERRINET_WRITEFILE                 // Невозможно записать файл
 37    ERRINET_READFILE                  // Невозможно прочитать файл
 38 	ERRFTP_RESPONSE                   // Неверный ответ сервера
 39 	ERRFTP_QUIT                       // Неверный ответ сервера на QUIT
 40 	ERRFTP_BADUSER                    // Несуществующее имя
 41 	ERRFTP_BADPSW                     // Неверный пароль
 42 	ERRFTP_PORT                       // Ошибка PORT
 43 
 44    // Команды - уведомления
 45    //   nfyfunc( uint code, nfyinfo ni )
 46    NFYINET_ERROR         =  0x0001   // Ошибка код ошибки по inet_error
 47    NFYINET_CONNECT                   // Соединение с сервером
 48    NFYINET_SEND                      // Посылаем запрос
 49    NFYINET_POST                      // Отправляем данные
 50    NFYINET_HEAD                      // Обработали заголовок param на httpinfo
 51    NFYINET_REDIRECT                  // Перенаправление в sparam
 52    NFYINET_GET                       // Получили данные param - общий размер
 53    NFYINET_PUT                       // Отправить данные param - общий размер
 54    NFYINET_END                       // Конец процесса
 55 	NFYFTP_RESPONSE                   // Ответ сервера в поле head
 56 	NFYFTP_SENDCMD                    // Команда для сервера в поле head   
 57 	NFYFTP_NOTPASV                    // Не может быть passive mode
 58    
 59    // http_get & http_getfile   
 60    HTTPF_REDIRECT        =  0x0001   // Использовать перенаправление
 61    HTTPF_FILE            =  0x1000   // buf содержит имя файла
 62    
 63    // Флаги http_getfile функции
 64    HTTPF_CONTINUE        =  0x0100   // Если файл уже существует и его 
 65                                      // размер меньше, то докачивать
 66    HTTPF_SETTIME         =  0x0200   // Установить серверное время
 67    // Флаги http_get функции
 68    HTTPF_STR             =  0x0010   // Добавлять 0 к данным
 69 }
 70 
 71 define
 72 {
 73    INET_HTTP  = 0   
 74    INET_FTP
 75 }
 76 
 77 type WSAData {
 78    ushort                  wVersion
 79    ushort                  wHighVersion
 80    reserved                szDescription[ $WSADESCRIPTION_LEN ]
 81    reserved                szSystemStatus[ $WSASYS_STATUS_LEN ]
 82    ushort                  iMaxSockets
 83    ushort                  iMaxUdpDg
 84    uint                    lpVendorInfo
 85 }
 86 
 87 type sockaddr_in 
 88 {
 89    short     sin_family
 90    ushort    sin_port
 91    uint      sin_addr
 92    reserved  sin_zero[8]
 93 }
 94 
 95 type sockaddr {
 96     ushort    sa_family
 97     reserved  sa_data[ 14 ]
 98 }
 99 
100 type hostent 
101 {
102    uint      h_name           /* official name of host */
103    uint      h_aliases        /* alias list */
104    short     h_addrtype       /* host address type */
105    short     h_length         /* length of address */
106    uint      h_addr_list      /* list of addresses */
107 }
108 
109 type proxyinfo
110 {
111    str    host    // хост прокси
112    uint   port    // порт
113    uint   enable  // включено или нет
114 }
115 
116 type httpinfo
117 {
118    uint      code
119    datetime  dt
120    str       size
121    str       location
122 }
123 
124 type inetnotify
125 {
126    str       url
127    str       head
128    uint      param
129    str       sparam
130 }
131  
132 global 
133 {
134    uint  ineterror         // Код последней ошибки
135    arr   proxy[2] of proxyinfo   // массив proxy   
136    str   inet_useragent = "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"
137 }
138 
139 import "ws2_32.dll" {
140 	uint accept( uint, uint, uint )
141 	uint bind( uint, uint, uint )
142    uint closesocket( uint )
143    uint connect( uint, uint, uint )
144    uint gethostbyname( uint )
145 	uint getsockname( uint, uint, uint )                    
146    ushort htons( ushort )
147    uint   inet_addr( uint )
148    uint   inet_ntoa( uint )
149 	uint   listen( uint, uint )
150 	uint   ntohl( uint )
151 	ushort ntohs( ushort )  
152    uint recv( uint, uint, uint, uint )
153    uint send( uint, uint, uint, uint )
154    uint shutdown( uint, uint )
155    uint socket( uint, uint, uint ) -> createsocket
156    int  WSACleanup()
157    uint WSAGetLastError()
158    int  WSAStartup( ushort, WSAData )
159 }
160 
161 func uint inet_error
162 {
163    return ineterror
164 }
165 
166 func uint inet_seterror
167 {
168    ineterror = WSAGetLastError()
169    return 0
170 }
171 
172 include 
173 {
174    "strinet.g"
175    "socket.g"
176    "proxy.g"
177    "http.g"
178 	"ftp.g"
179 }
180 
181 func uint inet_init()
182 {
183    WSAData wsaData
184    
185    ineterror = WSAStartup( 0x0202, wsaData )
186    
187    if ineterror : return 0               
188    if wsaData.wVersion != 0x0202 
189    {
190        WSACleanup( )
191        ineterror = $ERRINET_DLLVERSION
192        return 0
193    }
194    return 1
195 }
196 
197 func uint inet_close
198 {
199    ineterror = WSACleanup()
200    return !ineterror
201 }