Hola ya tengo un web Server montado...
el problema esta aqui:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Select Case Left(datos, 3)
Case "GET"
Dim n_File As Integer
Dim File As String
Dim Contenido As String
n_File = FreeFile
[b]File = "C:\AppServ\www\Nueva Web\index.htm"[/b]
Open File For Input As n_File
pro = Input$(LOF(n_File), #n_File)
Close n_File
Winsock1.SendData pro
End Select
End Sub
Que alli selecciono un solo archivo y al darle a un link en la web me sigue saliendo ese archivo..
¿Que hago?
Salu2..!! ::)
:o :o Puedes explicarlo mejor?? La verdad es que no entiendo nada.... :-\ :-\
Es como lo del Xeon Web Server O el Apache o cualquier servidor web...
Pero lo que pasa es que yo en una parte del code teng que leer la web que yo le mandare al Cliente (Protocolo Http) y le mando el contenido del index...
Cuando abro la web y le doy a otro link me sigue dando el index y no el otro link
Lo que tienes que hacer es leer toda la petición que te hace el explorador (Firefox por ejemplo). Este te pasa la pagina que el usuario quiere ver, tu lo analizas y se la pasas. Asi de facil :)
PD: Al rezibir eso filtra el contenido de la petizión.....no vaya a ser que te mande lo siguiente:
GET C:\Archivos de Programa\documentosecreto.txt HTTP/1.0
Y tu se lo mantes...xDDDD
Aun no entiendo explicate mejor... Por favor
sabes el protoclolo HTTP??? :huh:
Si lo sabes entenderas lo que te dije ;)
A veces me manda este:
[code]
GET / HTTP/1.1
Accept: */*
Accept-Language: es
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MEGAUPLOAD 2.0; .NET CLR 2.0.50727)
Host: MI IP
Connection: Keep-Alive
O este:
GET /imagenes/banner.jpg HTTP/1.1
Accept: */*
Referer: http://201.249.106.36/
Accept-Language: es
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MEGAUPLOAD 2.0; .NET CLR 2.0.50727)
Host: MI IP
Connection: Keep-Alive
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. [/code]
Si lo se el error es que quiere ver es una imagen -.- mejor dicho me cuesta usar Left y Split aunque lo se usar pero no se que pasa ahora.. :xD
Te entiendo pero la primera vez me manda VACIO un GET vacio que quieres que haga en esos casos -.-
Osea es dificil usar Split y Left cuando los resultados no son siempre los mismos..
Mientras estoy intentando pero si tienes solucion mas efectiva,......
NO DUDES en avisarme jejej
Bueno ya tengo esto:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Text2.Text = datos
Select Case Left(datos, 3)
Case "GET"
n_File = FreeFile
File = "C:\appserv\www\Nueva Web"
FileO = "C:\AppServ\www\Nueva Web\index.htm"
Open FileO For Input As n_File
cont = Input$(LOF(n_File), #n_File)
Close n_File
Winsock1.SendData cont
File1 = Split(Text2.Text, " ")
File2 = File1(1)
File3 = File & Replace(File1(1), "/", "\")
Text3.Text = File3
End Select
End Sub
Con ese codigo logro colocar en un Textbox (text3) la ruta que me esta pidiendo el cliente...
Pero cuando le agrego Open File3 y bla bla bla me sale que File3 es esto : "/" osea es raro.. :P
Salu2..!!
hola lo que te manda es la Cabesera de la peticion, la cabesera es divida del cuertpo por dos saltos de carro (vbcrlf), entonces tu tienes que verificar este salto de carro para saber que termino la cabesera
mira
en el general declaras
Dim Data as string
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim Dato as string
WS.GetData Dato
Data = Data & Dato
If InStr(Data, vbCrLf & vbCrLf) Then 'significa que termino la cabesera
Ret = InStr(Data, "GET /")
If Ret Then
FileRequest = Mid(Data, 6, InStr(Data, "HTTP/1.1" & vbCrLf) - 7)
If FileRequest = "" Then
FileRequest = App.Path & "\Index.html"
Else
'tu sabras que mandas
End If
End If
end if
como ves almaceno la variable Dato en Data porque puede que la cabesera no llegue
entera de una sola ves, y si no lo haces se te arma un quilombo
te paso una aplicacion que hice, pero bueno cuando la hice no savia estas cosas y lo deje asi, pero te va a ayudar mucho. vas a encontrar muchas funciones que te van a servir para resolver como cambiar la url por un archivo de tu pc
http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/server-at-leandro.htm
Es buenisimo... Voy a revisar... Ya que hendrix me dejo aqui solo -.- :xD :xD :xD
EDITO: La verdad no entiendo pero ya mismo sigo intentando.. :xD
Gracias...
Te recomiendo ese code del ServerAT de LeandroA esta muy completo y a mi me ha servido mucho
Te aconsejo este tuto para q aclares algunos conceptos:
http://www.fpress.com/revista/Num0701/art.htm