Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Porque no me function este codigo?

Estas en el tema de Porque no me function este codigo? en el foro de Visual Basic clásico en Foros del Web. Hola, tengo este codigo visual basic: ( que lo consegui de aqui: http://www.monografias.com/trabajos3...al-basic.shtml ) Código: Private Sub Command2_Click() Winsock1.Close Winsock1.LocalPort = 9900 Winsock1.Listen Text1.SelStart = ...
  #1 (permalink)  
Antiguo 23/05/2008, 14:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Sonrisa Porque no me function este codigo?

Hola, tengo este codigo visual basic: ( que lo consegui de aqui: http://www.monografias.com/trabajos3...al-basic.shtml)
Código:
   
 
Private Sub Command2_Click()
    Winsock1.Close
    Winsock1.LocalPort = 9900
    Winsock1.Listen
    Text1.SelStart = Len(Text1.Text)
    Text1.Text = Text1.Text & "*** Servidor encendido." & vbCrLf
    Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Command3_Click()
    Winsock1.Close
    Text1.SelStart = Len(Text1.Text)
    Text1.Text = Text1.Text & "*** Servidor Cerrado." & vbCrLf
    Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_Close()
    Text1.SelStart = Len(Text1.Text)
    Text1.Text = Text1.Text & "*** Client BYEBYE." & vbCrLf
    Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    
    'cerramos previamente el socket
    Winsock1.Close
    
    'aceptamos la conexion
    Winsock1.Accept requestID
    
    'desplegamos un mensaje en la ventana
    Text1.SelStart = Len(Text1.Text)
    Text1.Text = Text1.Text & "*** Cliente enter, welcome!" & vbCrLf
    Winsock1.SendData "Welcome" & vbCrLf
    Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim Buffer As String '
    
    Winsock1.GetData Buffer
If Buffer = "110" Then
Winsock1.SendData "Usuario:" & vbCrLf
End If

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    'cerramos la conexion
    Winsock1.Close
    
    'mostramos informacion sobre el error
    MsgBox "Error numero " & Number & ": " & Description, vbCritical
End Sub
El problema esta aqui:
Código:
If Buffer = "110" Then
Winsock1.SendData "Usuario:" & vbCrLf
End If
No se envia ningun dato al cliente
La variable buffer este definida, porque si pongo esto:
Código:
msgbox buffer, vbcritical
si que me pone el mensaje que envia el cliente
El problema pampoco este en
Código:
Winsock1.SendData "Usuario:" & vbCrLf
Porque si lo pongo por separado envia los datos al cliente perfectamente.
Entonces, cual es el problema?
Gracias y un saludo
  #2 (permalink)  
Antiguo 23/05/2008, 14:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Porque no me function este codigo?

No entiendo, al colocar MsgBox qué te pone en el mensaje, ya que lo que estás haciendo en ese código es comprobar si el dato recibido es "110" y en ese caso enviar "Usuario:".
No entiendo qué es lo que no funciona.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/05/2008, 16:17
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

no functiona el if :)
  #4 (permalink)  
Antiguo 23/05/2008, 16:45
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Respuesta: Porque no me function este codigo?

buffer como esta definido? como string?, poke lo comparas con un string, que pasa si lo comparas con val(buffer)?
  #5 (permalink)  
Antiguo 23/05/2008, 16:46
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Respuesta: Porque no me function este codigo?

al reves.... o comparas con 110, como numero?
  #6 (permalink)  
Antiguo 23/05/2008, 23:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

miralo tu mismo: (yo no entiendo grand cosa )
Código:
    Dim Buffer As String '
    
    Winsock1.GetData Buffer
  #7 (permalink)  
Antiguo 24/05/2008, 00:04
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

Cita:
Iniciado por Kruzado Ver Mensaje
poke lo comparas con un string, que pasa si lo comparas con val(buffer)?
Gracias, lo puse asi y me functiona:
Código:
If Val(Buffer) = "110" Then
Winsock1.SendData "Usuario:" & vbCrLf
End If
  #8 (permalink)  
Antiguo 30/05/2008, 10:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

pero me funciona solo si buffer es un numero :(
si cambio 110 por una cadena que no es decimal, no me funciona.
Saludos!
  #9 (permalink)  
Antiguo 30/05/2008, 11:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
pero me funciona solo si buffer es un numero :(
si cambio 110 por una cadena que no es decimal, no me funciona.
Saludos!
Si quieres comparar cadenas que no sean numéricas debes quitar el Val (que lo convierte a número, en caso de cadenas no numéricas devuelve 0).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 30/05/2008, 12:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

lo he quitado y tampoco me funciona
Perdon las molestias
Saludos!
  #11 (permalink)  
Antiguo 30/05/2008, 12:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
lo he quitado y tampoco me funciona
Perdon las molestias
Saludos!
¿Cuál es la cadena que quieres comparar?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 30/05/2008, 12:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Sonrisa Respuesta: Porque no me function este codigo?

If Buffer = "contrasena" Then
Winsock1.SendData "Bienvenido" & vbCrLf
End If
  #13 (permalink)  
Antiguo 30/05/2008, 12:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
If Buffer = "contrasena" Then
Winsock1.SendData "Bienvenido" & vbCrLf
End If
Coloca un punto de interrupción en la línea del If para ver qué valor te está devolviendo en Buffer.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 30/05/2008, 12:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

como se coloca eso?
  #15 (permalink)  
Antiguo 30/05/2008, 12:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Información Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
como se coloca eso?
Ve a la línea del If, y apreta F9 o ve a Menú->Depuración->Alternar punto de interrupción. Cuando coloques eso la ejecución se detendrá en la línea indicada, allí pasa el mouse sobre la variable Buffer, te mostrará cuál es su valor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 30/05/2008, 12:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

me mostro:

http://img131.imageshack.us/img131/9064/evsyb4.png
Creo que el cuadradito es cambio de linea!
Habra que utilizar la function strstr!
  #17 (permalink)  
Antiguo 30/05/2008, 13:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
me mostro:

http://img131.imageshack.us/img131/9064/evsyb4.png
Creo que el cuadradito es cambio de linea!
Habra que utilizar la function strstr!
Bueno, es exactamente por ese 'cuadradito' que no te funcionaba, intenta poniendo esto:
Código:
 
'Quitamos el último caracter antes de comparar
If Left(Buffer, Len(Buffer) - 1) = "login" Then
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 30/05/2008, 13:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

gracias David, me funciona a la perfeccion. Si el foro tendria sistema de karmas te daria una. Mil gracias!
  #19 (permalink)  
Antiguo 30/05/2008, 13:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
gracias David, me funciona a la perfeccion. Si el foro tendria sistema de karmas te daria una. Mil gracias!
De nada. Saludos

P.S.: El foro la tiene (http://www.forosdelweb.com/f74/karma...el-web-526095/)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #20 (permalink)  
Antiguo 31/05/2008, 10:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

Ahora queda un pequeño problemita: No se puede conectar mas de un cliente! Y eso porque?
  #21 (permalink)  
Antiguo 03/06/2008, 06:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
Ahora queda un pequeño problemita: No se puede conectar mas de un cliente! Y eso porque?
Para conectar más de un cliente, debes indexar el control Winsock y cada vez que se acepte una conexión cargar uno nuevo con Load...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #22 (permalink)  
Antiguo 11/06/2008, 13:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Porque no me function este codigo?

y como se hace eso?
  #23 (permalink)  
Antiguo 12/06/2008, 07:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Porque no me function este codigo?

Cita:
Iniciado por magTpeak Ver Mensaje
y como se hace eso?
Ese problema se ha tratado en este tema:
http://www.forosdelweb.com/f69/contr...ientes-518635/
(Solución por Laforge)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:02.