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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


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

Desconectado Desconectado

Mensajes: 186


Ver Perfil
problemilla con el control winsock
« en: 15 Agosto 2007, 14:40 pm »

Hola, hace poquito que he empezado con visual basic 6.0 y haciendo un aplicacion cliente/servidor(multiconexion), tengo un pequeño problema y es q los datos del servidor no se envian a todos los clientes............

Private Sub Command3_Click()
Dim numelementos As Integer
Dim i As Integer
numelementos = Winsock2.UBound
For i = 0 To numelementos
    If Winsock2(i).State = sckConnected Then
        Winsock2(i).SendData nick & ">" & Text2.Text & vbCrLf
        Text1.SelStart = Len(Text1.Text)
        Text1.Text = Text1.Text & nick & ">" & Text2.Text & vbCrLf
        Text1.SelStart = Len(Text1.Text)
    End If
Next
    Text2.Text = ""
End Sub


En el servidor lo pone dos veces en el textbox como si lo hubiera enviado dos veces pero solo le llega a un cliente (lo he probado con dos clientes abiertos)
Gracias de antemano....


En línea

Red Mx
Rojito
Colaborador
***
Desconectado Desconectado

Mensajes: 3.649


Viva México Cabrones...


Ver Perfil WWW
Re: problemilla con el control winsock
« Respuesta #1 en: 15 Agosto 2007, 15:31 pm »

no me convence en la parte del for

For i = 0 To numelementos
    If Winsock2(i).State = sckConnected Then
        Winsock2(i).SendData nick & ">" & Text2.Text & vbCrLf
        Text1.SelStart = Len(Text1.Text)
        Text1.Text = Text1.Text & nick & ">" & Text2.Text & vbCrLf
        Text1.SelStart = Len(Text1.Text)
    End If
Nex


tal ves estas enviando los datos muy rapido lo puedes intentar con un timer a 500 milisegundos


En línea

Desarrollar Malware Es Causa De Cancer...
maxim_o

Desconectado Desconectado

Mensajes: 186


Ver Perfil
Re: problemilla con el control winsock
« Respuesta #2 en: 15 Agosto 2007, 16:29 pm »

mmm e puesto un control timer , pero buskando como hacerlo pone que eso es para repetir periodicamente un evento, pero en un chat si le doy a repetir periodicamente el enviar  puede mandar lo mismo varias veces¿? :S no se he probado a poner justo despues del winsock2(i).SendData un Sleep(500) pero sigue sin funcionar  :S pero es que usando el debugger el paso a paso por instrucciones si q lo hace bien, no se por que ejecutandolo en modo normal pasa esto....
Alguna idea?
Gracias de antemano
En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: problemilla con el control winsock
« Respuesta #3 en: 16 Agosto 2007, 22:53 pm »

Creo que esta es la solucion, si tenes algun problema o alguna parte del codigo esta mala, comunicamelo :)
igual si queres que te explique el codigo, ahora me da pereza xD

Código
  1. 'En un formulario con:
  2. 'Un componente Microsoft Winsock Control 6.0
  3.        'Nombre = WK
  4.        'Index = 0
  5. 'Dos botones de comando:
  6. 'Nombre = Escuchandocmd
  7. 'Enabled = True
  8.  
  9. 'Nombre = Desconectarcmd
  10. 'Enabled = False
  11. 'Un label:
  12. 'Nombre = Usr
  13. 'Dos cajas de Texto
  14. 'Nombre = Chattxt
  15. 'Locked = True
  16.  
  17. 'Nombre = Mensajetxt
  18. 'Enabled = False
  19. '
  20. 'Codigo:
  21. Dim ContadorUsuarios&, ContadorSockets&, i&
  22.  
  23. Private Sub Chattxt_Change()
  24. Chattxt.SelStart = Len(Chattxt.Text)
  25. End Sub
  26.  
  27. Private Sub Desconectarcmd_Click()
  28. On Error Resume Next
  29. For i = 1 To ContadorSockets
  30.    WK(i).Close
  31.    Unload WK(i)
  32. Next i
  33. WK(0).Close
  34. Escuchandocmd.Enabled = True
  35. Desconectarcmd.Enabled = False
  36. Mensajetxt.Enabled = False
  37. ContadorSockets = 1
  38. Usr.Caption = "Usuarios conectados: 0"
  39. End Sub
  40.  
  41. Private Sub Escuchandocmd_Click()
  42. On Error GoTo Error
  43. If WK(0).State <> sckListening Then
  44. WK(0).LocalPort = 1990
  45. WK(0).Protocol = sckTCPProtocol
  46. WK(0).Listen
  47. End If
  48. Do
  49. Chattxt.Text = Chattxt.Text & vbCrLf & "Escuchando en el puerto " & WK(0).LocalPort
  50. Escuchandocmd.Enabled = False
  51. Desconectarcmd.Enabled = True
  52. Mensajetxt.Enabled = True
  53. DoEvents
  54. Loop Until WK(0).State = sckListening
  55.  
  56. Error:
  57. If Err.Description <> "" Then
  58.    Chattxt.Text = "Ha ocurrido un error: " & Err.Description
  59.    Err.Description = ""
  60. End If
  61. End Sub
  62.  
  63. Private Sub Form_Load()
  64. ContadorSockets = 1
  65. End Sub
  66.  
  67. Private Sub Mensajetxt_KeyPress(KeyAscii As Integer)
  68. If KeyAscii = Asc(vbCrLf) Then
  69.    If Val(ContadorSockets) > 1 Then
  70.        For i = 1 To ContadorSockets - 1
  71.            If WK(i).State = sckConnected Then
  72.                WK(i).SendData Replace(Mensajetxt.Text, vbCrLf, "") & vbCrLf
  73.                DoEvents
  74.            End If
  75.        Next i
  76.        Chattxt.Text = Chattxt.Text & vbCrLf & Mensajetxt.Text
  77.        Mensajetxt.Text = ""
  78.    End If
  79. End If
  80. End Sub
  81.  
  82. Private Sub WK_Close(Index As Integer)
  83. ContadorUsuarios = ContadorUsuarios - 1
  84. Usr.Caption = "Usuarios conectados: " & ContadorUsuarios
  85. Chattxt.Text = Chattxt.Text & vbCrLf & "- La ip " & WK(Index).RemoteHostIP & " ha dejado el chat -"
  86. End Sub
  87.  
  88. Private Sub WK_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  89. Load WK(ContadorSockets)
  90. WK(ContadorSockets).Accept requestID
  91. Chattxt.Text = Chattxt.Text & vbCrLf & "- Se ha unido la ip " & WK(ContadorSockets).RemoteHostIP & " al chat -"
  92. Usr.Caption = "Usuarios conectados: " & ContadorUsuarios
  93. ContadorSockets = ContadorSockets + 1
  94. ContadorUsuarios = ContadorUsuarios + 1
  95. End Sub
  96.  
  97. Private Sub WK_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  98. Dim Datos
  99. WK(Index).GetData Datos, vbString
  100.  
  101. Chattxt.Text = Chattxt.Text & vbCrLf & WK(Index).RemoteHostIP & " Dice: " & Replace(Replace(Replace(Datos, vbCrLf, ""), vbCr, ""), vbLf, "")
  102. End Sub
  103.  
  104. Private Sub WK_Error(Index As Integer, 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)
  105. Chattxt.Text = "Ha ocurrido un error: " & Description
  106. End Sub
  107.  
« Última modificación: 17 Agosto 2007, 03:46 am por .HaDeS. » En línea

maxim_o

Desconectado Desconectado

Mensajes: 186


Ver Perfil
Re: problemilla con el control winsock
« Respuesta #4 en: 18 Agosto 2007, 21:33 pm »

Wenass!!! Si supongo q funciona :P muxas gracias !!
En línea

eudy

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: problemilla con el control winsock
« Respuesta #5 en: 24 Octubre 2007, 07:12 am »

hades ,  Por dios e buscado esto hace meses loko te agradezco este aporte  :xD  por dios graciais
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

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