FAQ Login
Buscar Perfil
Miembros Grupos de Usuarios
Entre para ver sus mensajes privados
Registrarse
Problema con multiples conexiones con Winsock
Publicar nuevo tema   Responder al tema
Foros de discusión » Programacion » Problema con multiples conexiones con Winsock
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Cursor
Recien nacido
Recien nacido


Registrado: 18 Dic 2003
Mensajes: 1
Ubicación: Chile

 Mensaje Publicado: Vie 19/12/2003    Asunto: Problema con multiples conexiones con Winsock
Responder citando

Hola amigos:

Tengo el siguiente problema: Sad

Mas abajo el codigo, cabe destacar que saque lo basico para que se entienda bien ya que yo creía que tenia el problema con un ListView, pero fui desmembrando el codigo hasta llegar a lo basico que es lo que varan
y el problema es el mismo....


los usuarios se conectan con winsock y el Form_Load activa el Timer1 enviandole el Nombre de Pc al servidor y este los visualiza en un TextBox. Cuando el Servidor tiene el nombre del pc le envia un dato que es recibido por el cliente este le debe devolver nuevamente su Nombre de Pc

Problema:

cuando se conecta el 1er. pc lo muestra en el TextBox
cuando se conecta el 2do.pc lo muestra en el TextBox etc...

cuando recido por segunda vez al 1er pc que se conecto este no lo muestra en el TextBox, hice un Break al DataArrival del servidor en su linea txt_missing.text = strData para ver que dato tiene strData a su segunda llegada y este viene como "", sin embargo si llega por segunda vez el 2do pc este si muestra su nombre.

Se dan cuenta creo que debo tener un problema en el Evento DataArrival
que a medida que recibe a los Pcs va cerrando las conexiones y mantiene solo al ultimo que se conecta, pero si fuera asi me daria un error 40006 y no lo da, si no que llega el dato vacio a exepcion del ultimo que se conecto porque ya deje solo lo los eventos y metodos básicos del control donde solo deben llegar a 1 TextBox...que me pueden decir ojalá me entiendan...y gracias por su paciencia

Code:

Dim intMax as Long
'Puerto a la escucha
Private Sub Form_Load()
intMax = 0
tcpServer(0).LocalPort = 1001
tcpServer(0).Listen
End Sub
'****************************************************************

Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As
Long)
'traspasamos el dato a un TextBox
Dim strData As String
tcpServer(intMax).GetData(strData)
txt_missing.Text = strData

MsgBox "llego mensaje",,"Felicidades"
End Sub
'*************************************************************
Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As
Long)
'Creamos una matriz y creamos nuevas instancias de conexion con intMax a medida que la consulta sea igual a 0 y la aceptamos con el metodo Accept
If Index = 0 Then
intMax = intMax + 1
Load tcpServer(intMax)
tcpServer(intMax).LocalPort = 0
tcpServer(intMax).Accept requestID
End If

End Sub
'*************************************************************

Private Sub cmd_enviar_Click()
'esto no hay para que revisarlo pues no influye para nada
tcpServer.SendData txt_Send.Text

End Sub


'*************************************************************
'* CODIGO CLIENTES '*
'*************************************************************

Private Sub Command1_Click(Index As Integer)
'Activamos el Timer1
If Command1(0) Then
Timer1.Enabled = True
End If

If Command1(1) Then
Text1.Text = ""
End If
End Sub

'*************************************************************

Private Sub Form_Load()
sckCliente.RemoteHost = "Pc7" 'Es el nombre del servidor
sckCliente.RemotePort = 1001
sckCliente.Connect
Timer1.Enabled = True 'Activa el Timer para enviar nombre del pc
End Sub
'*************************************************************

Private Sub sckCliente_DataArrival(ByVal bytesTotal As Long)
Dim strData As String

sckCliente.GetData strData
Text1.Text = strData

End Sub
'*************************************************************

Private Sub Timer1_Timer()

'Aqui enviamos el nombre del pc al servidor
sckCliente.SendData sckCliente.LocalHostName
Timer1.Enabled = False

End Sub

Gracias de antemano Wink
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado Enviar email
dgonzalez
Recien nacido
Recien nacido


Registrado: 30 Sep 2008
Mensajes: 1

 Mensaje Publicado: Mar 30/09/2008    Asunto:
Responder citando

El error esta en que debes cambiar TCP(intmax) por TCP(index) de esta forma de mostrará el mensaje que te esta enviando cualquiera de los dos o más clientes.

Private Sub TCP_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim INFO As String
TCP(index).GetData INFO
Agrego_Texto "CLIENTE " & TCP(index).RemoteHostIP, INFO
End Sub

Gracias por el PRG a mi sirvio para unas pruebas. Si requieres ayuda en algo que este a mi alcance con gusto de ayudo.

Salu2
Desde Chile también Very Happy
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Foros de discusión » Programacion » Problema con multiples conexiones con Winsock
Publicar nuevo tema   Responder al tema Todas las horas son GMT + 1 Hora
Página 1 de 1

 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
   




http://www.pcdemano.com



Site Map

hit counter for myspace