Autor Tema: Winsock + multiconexion + cliente/servidor  (Leído 3919 veces)

0 Usuarios y 1 Visitante están viendo este tema.

fernandos85al@hotmail.com

  • Kilobyte
  • **
  • Mensajes: 71
  • Reputación: +3/-3
    • Ver Perfil
Winsock + multiconexion + cliente/servidor
« en: Enero 04, 2011, 06:22:33 pm »
Hola gente, estoy nuevamente aqui, tratando de ver si alguien sabe que hago mal.. o cual puede ser el problema..

se trata de un cliente/servidor en en cual el servidor acepta multiples conexiones. el servidor lo tengo instalado en la pc1, y los cliente en las pcs 2, 3, 4 , 5, etc..
al iniciar o ejecuta los cliente, estos envian un comando" Inicio" al servidor, en el cual mediante select case se detecta y se ejecuta una consulta en SQL, a una base de datos en access 2003. Mi problema esta aqui, cuando llega(n) al servidor los comandos "Inico" desde los clientes, para por select case, ejecuta una consulta, y deberia enviar los resultados a los cliente, y deberia identificar cual de los cliente inicio dicho comando.  pero no puedo me salta un error y no encuentro forma de solucionarlo.


dejo el codigo del servidor:

Código: (vb) [Seleccionar]
Dim matriz() As String
Private Sub MDIForm_Load()
Winsock1(0).Close
Winsock1(0).LocalPort = "3737"
Winsock1(0).Listen
Winsock2(0).Connect nRemoteIp, "3738"
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
cuenta = cuenta + 1
Load Winsock1(cuenta)
Winsock1(cuenta).Accept requestID

End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim data As String
Winsock1(Index).GetData data

matriz = Split(data, "|")

MsgBox matriz(0) & " " & matriz(1)

nRemoteIp = matriz(0)

Winsock2(0).SendData "pepsi"
End Sub

codigo de o los clientes. (obvio son los mismo en todas las pcs)

Private Sub Form_Load()
Winsock1.Connect "10.10.1.114", "3737"
Winsock2.Close
Winsock2.LocalPort = "3738"
Winsock2.Listen

End Sub

Private Sub Winsock1_Connect()
Winsock1.SendData Winsock1.LocalIP & "|" & Winsock1.LocalHostName
End Sub

Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long)
Winsock2.Close
Winsock2.Accept requestID

End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim data As String

Winsock2.GetData data

MsgBox data
End Sub

el error es. error 40006 en tiempo de ejecucion
protocolo o estado de conexion erroneo para la transaccion o peticion solicitada.

disculpen que sea tan extenso, pesdo con el mismo problema, solo dejo el codigo para si alguien ve el error si puede me avise, sinceramente no lo veo.. es algo primitivo el codigo, lo debo hacer asi por los recursos de las computadoras, ya que son viejitas.. jeje


saludos y mil gracias de antemano..

« última modificación: Enero 05, 2011, 03:15:12 pm por xkiz »

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Winsock + multiconexion + cliente/servidor
« Respuesta #1 en: Enero 04, 2011, 11:30:12 pm »
hola no probel el codigo pero solo veo a simple vista esta linea que esta de mas en el servidor
Winsock2(0).Connect nRemoteIp, "3738"

si es un servidor y esta a la escucha no tiene que conectar a ningun lado.

Saludos.

fernandos85al@hotmail.com

  • Kilobyte
  • **
  • Mensajes: 71
  • Reputación: +3/-3
    • Ver Perfil
Re:Winsock + multiconexion + cliente/servidor
« Respuesta #2 en: Enero 05, 2011, 02:26:13 pm »
Hola mil gracias leandro, el tema es que queria que se pueda enviar tanto como recibir informacion entre el servidor y los clientes, tal vez esa linea sea el error., voy a ver y comento..  ;D Mil gracias nuevamente!!

saludos!!