Bueno, a ver, primero unas aclaraciones:-Todos los comandos que te aparescan impresos en la consola de VB los imprime la API, asi que simplemente si no sabes que quieren decir buscalos dentro del codigo.
-Nunca me hizo ningun pitido este API, no es WinSock.
- FD_WRITE 804, FD_WRITE 976, FD_WRITE 1044, FD_WRITE 796, FD_WRITE 736 etc, es lo que aparece cuando se transmiten/reciven datos.
Por ejemplo:
FD_READ lo imprime la funcion PostSocket solo para avisar que esta leyendo datos.
No son errores, solo informacion.Y ahora, vos pediste que te hagan funcionar el codigo que posteaste, y asi fue, ese codigo como bien dijiste es muy vago, para que conecte primero tenes que abrir el Servidor para que escuche y despues el Cliente que se conecte, de otra forma no anda. ¿Por que? Simple, mira:
SERVIDOR escucha<-->CLIENTE conecta
Si el SERVIDOR no escucha<--> el CLINETE no tiene a quien conectar y no lo intenta mas.
Proba, si primero ejecutas el Servidor, despues el Cliente te va a conectar perfectamente, de lo contrario, quedara tratando de conectar sin respuesta.
¿Como se soluciona?En el servidor:Para que vuelva a escuchar si falla la conexión o se cierra.Private Sub ws_Error(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)
ws.CloseSck
'Escuhar
End Sub
Private Sub ws_CloseSck()
ws.CloseSck
'Escuhar
End Sub
En el Cliente:Para que vuelva a conectar si falla la conexión o se cierra y sepa si esta o no conectado para volver a intentar si no lo logro.Private Sub ws_Error(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)
ws.CloseSck
'Conectar
End Sub
Private Sub ws_CloseSck()
ws.CloseSck
'Conectar
End Sub
Private Sub Timer_Coneccion_Timer()
If ws.State = sckConnected Then
'Conectado
Else
'Desconectado
'Conectar
End If
End Sub
De esta forma tiene que andar PERFECTA la conexión.
Si no te funciono ¿Que podes intentar?:-Baja de otra parte el Modulo y el Modulo Class dek Socket(Puede que esten modificados).
-Intenta con otro puerto
-Fijate de tener:
En las declaraciones Globales:
Option Explicit
Dim WithEvents ws As CSocketMaster
Y cuando inicia el Form:
Set ws = New CSocketMaster