Hola, estoy intentando Implementar la Clase Csocket en un programa que realiza una conexión a un servidor el paquete lo descargué http://rapidshare.com/files/242230528/CSocket.zip
Ya atribuí el módulo y el módulo de clase correspondiente, que vienen en ese paquete.
Bueno usaba este fragmento de código por el que podía conectar a el servidor mediante Winsock (El socket del Objeto cliente se llama SckClient y el del server Sckserver), éste si me funciona perfectamente y accedo al servidor:
Cita: Private Sub SckClient_Close()
sckclient.Close 'Cerrado
sckclient.Listen ' Escuchando ( En espera)
sckserver.Close ' Cerrado
End Sub
Private Sub SckClient_ConnectionRequest(ByVal requestID As Long)
sckserver.Connect 'Conecta
sckclient.Close 'Close Old Connection for Client
Do Until sckserver.State = sckConnected 'Wait the Server is Connected
DoEvents 'Wait
Loop 'Loop
sckclient.Close 'Close Old Connection
sckclient.Accept requestID 'Accept Connection
End Sub
Private Sub SckClient_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
On Error Resume Next
sckclient.GetData Data
sckserver.SendData Data
End Sub
Private Sub SckServer_Close()
sckclient.Close 'Connection Close
sckclient.Listen 'Wait for Connection
sckserver.Close 'Close Connection
End Sub
Private Sub SckServer_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
On Error Resume Next
sckserver.GetData Data
sckclient.Senddata Data
End Sub
El anterior código funciona perfectamente, recibo y envió datos sin problemas
Ahora la implementación que hize por Csocket:
Cita: Private Sub cSock1_OnClose()
cSock1.CloseSocket
cSock1.Listen
cSock2.CloseSocket
End Sub
Private Sub Csock1_OnConnectionRequest(ByVal requestID As Long)
cSock2.Connect
cSock1.CloseSocket
Do Until cSock2.State = sckConnected
DoEvents
Loop
cSock1.CloseSocket
cSock1.Accept requestID
End Sub
Private Sub cSock1_OnDataArrival(ByVal bytesTotal As Long)
Dim data As String
On Error Resume Next
cSock1.GetData data
cSock2.SendData data
End Sub
Private Sub cSock2_OnClose()
cSock1.CloseSocket
cSock1.Listen
cSock2.CloseSocket
End Sub
Private Sub cSock2_OnDataArrival(ByVal bytesTotal As Long)
Dim data As String
On Error Resume Next
cSock2.GetData data
cSock1.SendData data
End Sub
En la implementación que hize de Csockets algo debe ocurrir, ya que intento conectar al servidor, pero sólo recibe datos iniciales los primeros que llegan y nada más, es como si no hubiera conectado correctamente. Se me olvidaba que el host y el puerto a conectar se estableció en otro formulario a parte, pero esto no debe influir en nada, ya que con Winsock funciona, El error debe estar en una parte de éste código.
Espero que me puedan ayudar en este problemilla :)
Gracias espero su respuesta.