Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Servidor Web Visual-Basic PDF
Servidor Web Visual-Basic PDF
Servidor Web Visual-Basic PDF
SERVIDOR
WEB HTML
EN VISUAL
BASIC
NDICE
0. INTRODUCCIN ........2
1. CONTROL WINSOCK...3
2. ENTORNO DE PROGRAMACIN VISUAL BASIC 6.0...4
3. CREACIN DEL FORMULARIO ..5
4. CDIGO DE LA APLICACIN7
4.1. CARGA DEL FORMULARIO7
4.2. ACTIVACIN/DESACTIVACIN DEL SERVIDOR..7
4.3. LISTA DE EVENTOS...13
4.4. SOLICITUD DE CONEXIN........14
4.5. LLEGADA DE DATOS.. .16
4.6. ENVO DE DATOS ..18
4.7. FIN DEL ENVO .. .19
4.8. MDULOS .21
4.9. SUBSANACIN DE ERRORES .23
4.10. FINALIZACIN ... 24
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
0. INTRODUCCIN
En el presente libro se pretende crear un servidor HTML que sea capaz de
entregar datos a un ordenador cliente que se encuentra en un lugar remoto.
El lenguaje de programacin elegido es el Visual Basic sobre
todo por la
especfico para comunicarse con otro ordenador mediante TCP y UDP. El control
Winsock.
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
1. CONTROL WINSOCK
El control WinSock permitir conectarse a un equipo e intercambiar datos con
el protocolo TCP. A partir de lo dicho, se podr crear una aplicacin que resida en un
servidor y al que se pueda acceder desde varios clientes. Es lo que se conoce como
una aplicacin Cliente/Servidor.
El control Winsock es el ms elemental de los controles que Visual Basic
dedica a las redes IP, ya que lo nico que hace en s es efectuar la conexin.
No implementa ningn servicio, eso se tiene que hacer con un programa pero
en contraposicin nos permite tener muchos datos y mucho control sobre ella. Es
decir, una vez establecida la conexin, se establecer un servicio mediante cdigo.
El control Winsock habr que agregarlo en la caja de herramientas (Proyecto >
Componentes >). Su nombre completo es Microsoft Winsock Control 6.0. No es visible
en tiempo de ejecucin, slo el programador sabe que el control se encuentra en
nuestra aplicacin y cuales son sus propiedades. Tiene esta forma:
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
3
2
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
Lo primero que se debe hacer es, crear una interfaz de usuario que ser la
principal va de comunicacin entre hombre y mquina tanto para salida como para
entrada de datos.
Winsock Control
1 botn
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
Control
Propiedad
Winsock
WS
Command1
Caption = Inicio
ListBox
Text =
TextBox
Text =
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
4. CDIGO DE LA APLICACIN
A partir del formulario ya obtenido, se puede empezar a tipear cdigo. El
sangrado del
programador, algunos recurren a l y otros no. Es una cuestin del que programa.
Se aplicar con el fin de un mejor entendimiento de qu hace el programa.
4.1.CARGA DEL FORMULARIO
Una vez finalizada la fase de diseo empieza la fase de ejecucin del programa.
El procedimiento que describe inicialmente al formulario es el siguiente:
Else
Estado.Caption = Inicio
Servidor.Caption = Servidor Detenido
WS.Close
EndIf
End Sub
travs
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
Descripcin
Reservado
No asignado
No asignado
ECHO
18
20
21
22
23
25
29
MSG ICP
37
Time
42
43
Whois
49
53
59
IDENT
69
70
Servicio Gopher
79
Servicio Finger
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
80
103
X.400 Standard
108
109
110
113
115
118
Servicios SQL
119
137
139
143
150
156
SQL Server
161
162
SNMP trap
179
190
194
197
210
389
396
HTTPS ("HyperText
Transfer
Protocol)
443
REVISTA
I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
10
444
445
Microsoft-DS
458
Apple QuickTime
513
546
547
DHCP Servidor
563
SNEWS
569
MSN
631
1080
Socks Proxy
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
11
Fig. Activacin del servidor. Arriba en la barra se puede observar la direccin IP del
servidor (213.0.201.140). Abajo, el directorio raz donde se encuentra la pgina.
Si por el contrario el servidor ya estaba activo y se pulsa el botn (ahora la
propiedad caption del botn ser Detener) su ttulo ser Inicio y en la barra del
formulario se indicar que el servidor est detenido.
Adems,
al
desactivarse
es
muy
importante
que
el
servidor
cierre
correctamente la conexin TCP. Para ello, debe usar el mtodo Close (WS.Close).
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
12
LISTA DE EVENTOS
El cdigo para aadir eventos al control lista es el siguiente:
ListaEventos.AddItem Texto
ListaEventos.ListIndex = ListaEventos.NewIndex
End Sub
Cada vez que ocurra un evento relacionado con la conexin (Solicitud de
conexin, Conexin aceptada, ) se pasar como parmetro al procedimiento (Texto).
Para ir aadiendo eventos (registros) en tiempo de ejecucin conforme vayan
sucediendo se utilizar el mtodo AddItem.
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
13
Lista de
Eventos
SOLICITUD DE CONEXIN
El procedimiento de solicitud de conexin es el siguiente:
Do Events
14
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
15
LLEGADA DE DATOS
Se debe hacer algo con la informacin que llega del cliente como es lgico. Se
WS.GetData DATA
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
16
(BUSCAR_ENVIAR +4))
End If
GET
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
17
PGINA NO
EXISTENTE
Fig. Pgina indicativa de error. Se introduce una pgina html que no existe para que
salte la oportuna pgina con la aclaracin oportuna.
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
18
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
19
FIN ENVO
20
4.8.
MDULOS
Un mdulo estndar (ficheros *.bas) contiene slo cdigo que, en general,
puede ser utilizado por distintos formularios y/o controles del proyecto e incluso por
varios proyectos. Normalmente contienen siempre algunas declaraciones de variables
globales o Public, que sern accesibles directamente desde todos los formularios.
Las dos funciones que a continuacin se exponen pueden ser por tanto
utilizados por otros proyectos que trabajen con archivos.
1) EXISTE ARCHIVO
La primera funcin que se llama ExisteArchivo tiene el siguiente cdigo:
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
21
2) LEER ARCHIVO
En este procedimiento, bsicamente lo que se pretende es abrir un fichero
pasado como parmetro leerlo carcter a carcter (se conoce como abrir un archivo
de forma secuencial) hasta formar una cadena de caracteres que es la que finalmente
se devuelve.
El cdigo de este mdulo ser:
If ExisteArchivo(Archivo) Then
If Len(Archivo) Then
Open Archivo For Input As #numerocanal
Do While Not EOF(numerocanal)
car = Input(1, #numerocanal)
cadena = " " & cadena & car
Loop
Close #numerocanal
End If
LeerArchivo = cadena
Else
LeerArchivo = " "
End If
End Function
22
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
23
Para ejecutar el programa paso a paso bastar con pulsar la tecla <F8> .
Fig. Ejecucin paso a paso. Cada vez que se pulse <F8> se ejecuta una lnea de
cdigo (marcada en amarillo).
4.10. FINALIZACIN
Una vez finalizada la programacin de la nueva aplicacin, la siguiente tarea
consistir en la creacin de un programa ejecutable para su distribucin e
instalacin en cuantos ordenadores se desee, incluso aunque en ellos no est
instalado Visual Basic 6.0.
Para
crear
un
programa
ejecutable
se
utiliza
el
comando
Generar
miservidor.exe dentro del men Archivo (el nombre de la aplicacin ser MiServidor).
De este modo se generar un fichero cuya extensin ser *.exe.
Finalmente, tras todo lo expuesto el cdigo del programa servidor sera:
Option Explicit
24
DoEvents
25
WS.GetData DATA
If Mid(DATA, 1, 3) = "GET" Then
BUSCAR_ENVIAR = InStr(DATA, "GET")
STRAUX = InStr(BUSCAR_ENVIAR + 5, DATA, " ")
pagina
Mid(DATA,
BUSCAR_ENVIAR
4,
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
26
Loop
Close #numerocanal
End If
LeerArchivo = cadena
Else ' si no existe cadena vaca
LeerArchivo = " "
End If
End Function
REVISTA I+E
CSICSIF Sector de Enseanza de Sevilla - C/ San Juan Bosco 51 B 41008 Sevilla. Tlf. 954069012
E- Mail ense41@csi-csif.es
27