elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Ayuda]Problema con winsock en vb6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]Problema con winsock en vb6  (Leído 5,444 veces)
mardek

Desconectado Desconectado

Mensajes: 12


Ver Perfil
[Ayuda]Problema con winsock en vb6
« en: 1 Agosto 2010, 06:19 am »

Hola gente como andan? Paso a comentarles mi problema. Estoy haciendo un programa tipo chat en el que yo mediante un textbox que tengo en el cliente , le envio informacion a el server. El problema es que no puedo lograr la conexión( siempre se queda en Estado - Esperando Conexión...) , estuve leyendo muchos tutoriales hoy y la verdad es que no se en que la estoy pifiando... Quisiera saber si alguno puede ver el error y me diga asi lo puedo corregir.

Trate de subir el programa a un servidor pero se procucía un error

Codigo Cliente Chat:
Código
  1. Private Sub Boton_Conexion_Click()
  2. On Error Resume Next
  3. WS.Close
  4. WS.Connect TxtIP.Text, 1066
  5. End Sub
  6.  
  7. Private Sub WS_Connect()
  8. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  9. End Sub
  10. Private Sub Boton_Desconexion_Click()
  11. WS.Close
  12. SB.Caption = "Estado - Desconectado (" & WS.RemoteHostIP & ")"
  13. End Sub
  14.  
  15. Private Sub WS_Close()
  16. SB.Caption = " Estado - Cerrando Conexión (" & WS.RemoteHostIP & ")" & vbCrLf
  17. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  18. WS.Listen
  19. End Sub
  20.  
  21. Private Sub Command1_Click()
  22. WS.SendData Text2.Text
  23. End Sub

Codigo server chat

Código
  1. Public WithEvents WS As CSocketMaster
  2.  
  3. Private Sub Form_Load()
  4. Set WS = New CSocketMaster
  5. On Error Resume Next
  6. WS.LocalPort = 1066
  7. WS.Listen
  8. End Sub
  9.  
  10. Private Sub WS_onClose()
  11. WS.CloseSck
  12. WS.Listen
  13. End Sub
  14.  
  15. Private Sub WS_onConnectionRequest(ByVal requestID As Long)
  16. WS.CloseSck
  17. WS.Accept requestID
  18. End Sub
  19.  
  20. Private Sub WS_DataArrival(ByVal bytesTotal As Long)
  21. Temp = Text2.Text
  22. WS.GetData Temp

Eso es todo. Graciar por haber entrado para ayudarme con este problema.
Saludos y que tengan un buen día


« Última modificación: 1 Agosto 2010, 07:04 am por mardek » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #1 en: 1 Agosto 2010, 06:47 am »

solo unos cambios radicales... usa Geshi ( [code=vb]codigo vb[/code] ) no se puede leer asi tu codigo!¡.

EDITO (Por que me saltaron muchos Horrores!¡.)!¡:

pero viendo un poco el cogido solo te dire que hay unos If THEN y algunos mensajes que se obvian en los eventos, por ejemplo!¡.

Código
  1. Private Sub WS_Connect()
  2. If (WS.State = sckConnected) Then
  3. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  4. End If
  5. End Sub
  6.  

quedaría así...

Código
  1. Private Sub WS_Connect()
  2. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  3. End Sub
  4.  

esto!¡.

Código
  1. Private Sub WS_Close()
  2. SB.Caption = " Estado - Cerrando Conexión (" & WS.RemoteHostIP & ")" & vbCrLf
  3. WS.Close
  4. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  5. WS.Listen
  6. End Sub
  7.  

aa...

Código
  1. Private Sub WS_Close()
  2. SB.Caption = " Estado - Cerrando Conexión (" & WS.RemoteHostIP & ")" & vbCrLf
  3. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  4. WS.Listen
  5. End Sub
  6.  

etc...

Ahora en un .Caption no tiene caso & vbCrLf !¡.

un error

Código
  1. Private Sub Command1_Click()
  2. WS.SendData "Text2.Text"
  3. End Sub
  4.  

seria a

Código
  1. Private Sub Command1_Click()
  2. WS.SendData Text2.Text
  3. End Sub
  4.  

OffTopic:

Aquí tienes un CTL ( Control de usuario, para que trabajes el CSocketMAster como el Winsock  xP solo cambia la propiedad .close a .closesck, es la única diferencia en el manejo habitual )

http://infrangelux.sytes.net/filex/?file=/BlackZeroX/Programacion/vb6/CSocketMaster.rar&dir=/BlackZeroX/Programacion/vb6&



« Última modificación: 1 Agosto 2010, 07:00 am por BlackZeroX » En línea

The Dark Shadow is my passion.
mardek

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #2 en: 1 Agosto 2010, 06:51 am »

Hola muchas gracias por interesarte, ya cambie el codigo. Mirare el link que me diste.
Muchas gracias devuelta

EDITO:
muchas gracias por las sugerencias que me diste, lo voy a corregir Gracias
« Última modificación: 1 Agosto 2010, 19:48 pm por mardek » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #3 en: 1 Agosto 2010, 06:54 am »

Ve los cambios qué te puse!¡.

no me cites hasta ahora soy el único qué te he escrito ademas se entiende el hilo!¡.

Edito:

El error parece estar aquí (Cambiando el Status del RaiseEvent del Modulo de clase del mismo estaría bien pero mejor Obviar qué reafirmar!¡. ).

Código
  1.  
  2. Private Sub WS_Connect()
  3. If (WS.State = sckConnected) Then
  4. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  5. End If
  6. End Sub
  7.  
  8.  

intenta a ponerlo así

Código
  1.  
  2. Private Sub WS_Connect()
  3. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  4. End Sub
  5.  
  6.  

Dulces Lunas!¡.
« Última modificación: 1 Agosto 2010, 06:57 am por BlackZeroX » En línea

The Dark Shadow is my passion.
mardek

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #4 en: 1 Agosto 2010, 06:56 am »

Hola muchas gracias por interesarte, ya cambie el codigo. Mirare el link que me diste.
Muchas gracias devuelta

EDITO:
muchas gracias por las sugerencias que me diste, lo voy a corregir Gracias

EDITO:
Cambie los codigos a como me digiste pero sigo con el problema, se queda en Estado - Esperando Conexión...

muchas gracias
« Última modificación: 1 Agosto 2010, 07:00 am por mardek » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #5 en: 1 Agosto 2010, 07:05 am »

mm es que tanto el cliente como el servidor tienen escuchan en un momento dado!¡.

revisa!¡ el evento close del cliente xP no deberia ser connect?, digo el cliente es el que se va a conectar mas no el que va a esperar la conexión del servidor, dado que el servidor no tiene el .connect ...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #6 en: 1 Agosto 2010, 07:06 am »

Citare tu código original para qué te des cuenta de lo dicho!¡.

Código
  1. Private Sub Boton_Conexion_Click()
  2. On Error Resume Next
  3. WS.Close
  4. WS.Connect TxtIP.Text, 1066
  5. End Sub
  6.  
  7. Private Sub WS_Connect()
  8. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  9. End Sub
  10. Private Sub Boton_Desconexion_Click()
  11. WS.Close
  12. SB.Caption = "Estado - Desconectado (" & WS.RemoteHostIP & ")"
  13. End Sub
  14.  
  15. Private Sub WS_Close()
  16. SB.Caption = " Estado - Cerrando Conexión (" & WS.RemoteHostIP & ")" & vbCrLf
  17. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  18. WS.Listen
  19. End Sub
  20.  
  21. Private Sub Command1_Click()
  22. WS.SendData Text2.Text
  23. End Sub
  24.  

Sangriento Infierno Lunar!¡.
En línea

The Dark Shadow is my passion.
mardek

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #7 en: 1 Agosto 2010, 07:07 am »

ok vere eso, la respuesta de si era ese el error la posteo dentro de unas horas porque me debo ir.

Muchas gracias BlackZeroX por ayudarme!!

saludos y que tengas un buen dia

EDITO:
BlackZeroX hice lo siguiente, elimine el evento WS_Close, y lo ordene de la siguiente manera

Código
  1. Private Sub Boton_Conexion_Click()
  2. On Error Resume Next
  3. WS.Close
  4. WS.Connect TxtIP.Text, 1066
  5. End Sub
  6.  
  7. Private Sub WS_Connect()
  8. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  9. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  10. End Sub
  11.  
  12. Private Sub Boton_Desconexion_Click()
  13. SB.Caption = " Estado - Cerrando Conexión (" & WS.RemoteHostIP & ")" & vbCrLf
  14. WS.Close
  15. SB.Caption = "Estado - Desconectado (" & WS.RemoteHostIP & ")"
  16. End Sub
  17.  
  18. Private Sub Command1_Click()
  19. WS.SendData Text2.Text
  20. End Sub
  21.  

De esta manera me queda en el Label (SB) que estoy conectado. Entonces procedo a escribir en el textbox, una oración, apreto el botón enviar (command1) y me marca: Error en tiempo de ejecución: 40006

"Protocolo o estado de conexión erróneo para la transacción o petición solicitada".


Busque en la web y me dice que ese error se produce cuando se trata de enviar un dato antes de que se esté conectado al server. Con esto significaria que en realidad no estoy conectado al server y el Label(SB) me muestra que sí.

Gracias
« Última modificación: 1 Agosto 2010, 20:12 pm por mardek » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #8 en: 1 Agosto 2010, 20:50 pm »

hay te falta un if then!¡

Código
  1.  
  2. Private Sub Command1_Click()
  3. WS.SendData Text2.Text
  4. End Sub
  5.  
  6.  

asi

Código
  1. Private Sub Command1_Click()
  2.    with ws
  3.        if .state=7 then
  4.            .SendData Text2.Text
  5.        else
  6.            if .state = 0 or .state= 9 or .state= 8 then ' // me parece que son estos los estados negativos en una conexion xP!¡
  7.                If MsgBox("Nesesitas realizar una conexion antes!¡." & vbNewLine & "Deseas conectarte ahora?",vbYesNo ,"") = vbYes Then
  8.                    sb.caption = "conectando al Servidor!¡..."
  9.                    .Connect TxtIP.Text, 1066
  10.                end if
  11.            end if
  12.        end if
  13.    end with
  14. End Sub
  15.  

ahora ve aqui

Código
  1. Private Sub WS_Connect()
  2. SB.Caption = "Estado - Esperando Conexión..." & vbCrLf
  3. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  4. End Sub
  5.  

no hay caso esos dos caption (ya que es muy rapido uq lo unico que veras será el ultimo set al caption!¡.)"¡.

Código
  1. Private Sub WS_Connect()
  2. SB.Caption = "Estado - Conectado (" & WS.RemoteHostIP & ")"
  3. End Sub
  4.  



P.D.: Indenta tu código (Usa la tecla Tab (Tabulador)!¡.), y si puedes sube tu codigo para verlo mejor!¡.

Sangriento Infierno Lunar!¡.
« Última modificación: 1 Agosto 2010, 21:01 pm por BlackZeroX » En línea

The Dark Shadow is my passion.
mardek

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Ayuda]Problema con winsock en vb6
« Respuesta #9 en: 1 Agosto 2010, 20:55 pm »

Hola BlackZeroX puse el codigo que me digiste pero me dice que debo realizar una conexion, quiere decir que aunque en el label (SB) me diga que estoy conectado enrealidad no lo estoy.

Gracias

« Última modificación: 1 Agosto 2010, 21:22 pm por mardek » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines