Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problema Servidor Web (Socket)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema Servidor Web (Socket) 
 
Hola Amigos de la comunidad, como veran soy nuevo por aca, y les agradeceria si me dieran una mano...

Tengo un problemita, estoy programando con gambas 2.8 un Servidor Web, por ahora bien simple...
La idea es que sirva paginas desde el navegador...

Mi servidor recibe el pedido desde el navegador, pero el cliente solo recibe el codigo de la pagina cuando se cierra la conexion del socket...
Eso no deberia ser asi, no??  O se debe reiniciar el socket??  (asi otro cliente puede realizar otro pedido).

Ahi les dejo un segmento del codigo que envia al cliente...

    'envio dato    
    pagina = Split(sBuf, " ")   'separa el codigo de peticion (GET /pepe.html HTTP/1.1.....)
    IF pagina[1] = "/" THEN         'darle una pagina default
        pagina[1] = "/index.html"
    ENDIF
    ruta = Application.path & pagina[1]  
    file = OPEN ruta FOR INPUT
    fvar = file.load(ruta)     'carga cod de archivo en fvar
    WRITE #obj, fvar, Len(fvar)  'envia datos por socket
 



Ah, otra cosa, como deberia enviar la respuesta del server, que va junto al codigo ya pedido??...

•    200 OK
El documento se ha servido correctamente.

"HTTP / 1.1 200 OK
Date:
Content-Type: text/html
Content - Length:
...."

 


MUCHAS GRACIAS DE ANTEMANO !!! Saludos!!!
 



 
jorgegotico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Servidor Web (Socket) 
 
¿Qué tipo de socket estás usando?

Existe uno especializado en la clase gb.net que es ServerSocket y acepta conexiones TCP (Tienes UDPSocket para el protocolo UDP):

http://gambasdoc.org/help/comp/gb.net/serversocket?en


Este trabaja de forma asíncrona, por lo que posiblemente sea la solución a tu problema.

No obstante veo que estás usando una versión muyyy antigua de gambas. Te recomiendo que actualices a la más reciente (2.20.2) y que podrás compilar fácilmente con las instrucciones que encontrarás en este Foro o bien hacerlo con el script que hay aquí (si usas Ubuntu).

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Servidor Web (Socket) 
 
Hola jguardon, gracias por responder anteriormente, pero sigo sin solucionarlo y con algunas dudas...

Con respeto al socket, uso el tipo ServerSocket/TCP... Y uso Ubuntu.
No instalado la version que me recomendaste, ya que no me parece sumamente necesario para realizar el proyecto que estoy haciendo, a menos que me comentes algo mas sobre las ventajas de la version.

Te dejo el codigo completo para que veas mejor como lo he realizado, te agradeceria si lo puedes analizar un poco...


' gambas class file
PRIVATE file AS File
PRIVATE fvar AS String
PUBLIC obj AS Object
PUBLIC sBuf AS String
PUBLIC pagina AS String[]

PUBLIC SUB cmdexit_Click()
  ME.Close    
END

PUBLIC SUB cmdlisten_Click()
    socket.Type = Net.Internet
    IF txtport.text = "" THEN
     Message.Warning("Complete textbox port")  
     txtport.SetFocus()    
    ELSE
        socket.Port = Val(txtport.Text)
        socket.Listen()        
         IF socket.Status = Net.Active THEN
          cmdlisten.Enabled = FALSE
          cmdclose.Enabled = TRUE
          txtpath.Enabled = FALSE
        END IF
    END IF    
END

PUBLIC SUB cmdclose_Click()
  socket.Close()
  cmdclose.Enabled = FALSE
  cmdlisten.Enabled = TRUE
END

PUBLIC SUB Form_Close()  
  socket.Close()
END
 
PUBLIC SUB socket_Closed()
   TextArea1.Text = TextArea1.Text & "Client" & " Closed" & Chr(13) & Chr(10)
END

PUBLIC SUB socket_Ready()
  TextArea1.Text = TextArea1.Text & "-- Client working --" & Chr(13) & Chr(10)    
END

PUBLIC SUB socket_Read()
DIM ruta AS String
DIM enc AS String
                
    READ #obj, sBuf, Lof(obj)
    TextArea1.Text = TextArea1.Text & "Requested page --> " & sBuf & gb.NewLine
    
    'envio dato    
    pagina = Split(sBuf, " ")  
    IF pagina[1] = "/" THEN
        pagina[1] = "/index.html"
    ENDIF
    ruta = Application.path & pagina[1]  
    file = OPEN ruta FOR INPUT
    'fvar = file.load(ruta)
    enc = "HTTP/1.1 200 OK/nDate: " & Now & "/nContent-Type: text/html/nContent-Length: " & Len(fvar) & "/nConnection: close/n"
    fvar = enc & file.load(ruta)
    WRITE #obj, fvar, Len(fvar)    
END

PUBLIC SUB socket_Connection(sHost AS String)
    TextArea1.Text = TextArea1.Text & "Connection request from: " & sHost & Chr(13) & Chr(10)
    Obj = socket.Accept()
END

PUBLIC SUB socket_Error()  
  Message.Error("Unable to bind socket")
  CLOSE socket  
END
 


Muchas gracias por tu ayuda!!!
 



 
jorgegotico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Bloquear Y Desbloquear Una Pc Remota Por S... gacsnic75 General 3 Martes, 04 May 2010, 01:34 Ver último mensaje
gacsnic75
No hay nuevos mensajes Socket TCP/IP En Internet MiguelVelandia Aplicaciones/Fragmentos de Código 5 Jueves, 07 Octobre 2010, 12:37 Ver último mensaje
jose2190
No hay nuevos mensajes Problemas Con Socket kmiz Aplicaciones/Fragmentos de Código 1 Domingo, 14 Noviembre 2010, 21:53 Ver último mensaje
kmiz
No hay nuevos mensajes Socket En Internet, Descargar razaAztk General 3 Lunes, 04 Julio 2011, 05:29 Ver último mensaje
soplo
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron