dudas de problemas con winsock

Iniciado por fraktal, 18 Septiembre 2006, 03:57 AM

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

fraktal

Hola 2 dudas con winsock. Primero, copie un simple ejemplo en otro ordenador que no hacia casi nada, solo que emplee Winsock y no iba pq faltaba el archivo MSWINSCK.ocx en el ordenador donde lo ejecute. Supongo que puedo copiarlo yo si quiero, pero si se lo tengo que mandar a alguien, tipo troyano, que puedo hacer?. Ahi alguna manera de incluir eso en el exe y que lo instale??.
Otra cosa, he echo unas pruebas de conexion CLIENTE/SERVIDOR con winsock tb y el problema es que creo el ejecutable del servidor y del cliente. Lo ejectuo desde el exe ambos y tal y todo bien. Cierro los programas y me doy cuenta que los programas despues de cerrarlos se quedan en memoria. Pq? yo creo que es por que ha abierto los puertos y tal pero no se como hacer para que se cierren y quede todo limpio. Los codigos empleados:
Cliente

Private Sub cmdconectar_Click()
ws.RemoteHost = cmdip.Text
ws.RemotePort = 2001
ws.Close
ws.Connect
Timer1.Interval = 3000
End Sub

Private Sub cmddesconectar_Click()
ws.Close
End Sub

Private Sub cmdenviar_Click()
If ws.State = 7 Then
ws.SendData (txtenviar.Text)
Else
rpt = MsgBox("DEBE ESTAR CONECTADO PRIMERO", vbOKOnly + vbCritical)
End If
End Sub

Private Sub cmdsalir_Click()
End

End Sub

Private Sub Timer1_Timer()
If Not ws.State = 7 Then
ws.Close
ws.Connect
lblestado.Caption = "NO CONECTADO"
Else
End If
If ws.State = 7 Then
lblestado.Caption = "CONECTADO"
Else
End If
End Sub


Servidor:

Private Sub Form_Load()
Form1.Visible = True
ws.LocalPort = "2001"
ws.Close
ws.Listen
End Sub

Private Sub Timer1_Timer()
If Not ws.State = 7 Then
ws.Close
ws.Listen
End If
End Sub

Private Sub ws_Close()
ws.Close
rpt = MsgBox("CONEXION PERDIDA", vbOKOnly)
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
rpt = MsgBox("CONEXION ESTABLECIDA", vbOKOnly)
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
ws.GetData datos
rpt = MsgBox(datos, vbOKOnly)
End Sub



Gracias y saludos.

~~

Hola:

CitarHola 2 dudas con winsock. Primero, copie un simple ejemplo en otro ordenador que no hacia casi nada, solo que emplee Winsock y no iba pq faltaba el archivo MSWINSCK.ocx en el ordenador donde lo ejecute. Supongo que puedo copiarlo yo si quiero, pero si se lo tengo que mandar a alguien, tipo troyano, que puedo hacer?. Ahi alguna manera de incluir eso en el exe y que lo instale??.

Puedes hacer dos cosas, o bien usar la Api o usar un joiner q copie la ocx en C:\windows\system32. Tambien podrias hacer tu propio joiner en VB, es facil y sobre todo te keda indetectable.

CitarOtra cosa, he echo unas pruebas de conexion CLIENTE/SERVIDOR con winsock tb y el problema es que creo el ejecutable del servidor y del cliente. Lo ejectuo desde el exe ambos y tal y todo bien. Cierro los programas y me doy cuenta que los programas despues de cerrarlos se quedan en memoria. Pq? yo creo que es por que ha abierto los puertos y tal pero no se como hacer para que se cierren y quede todo limpio. Los codigos empleados:

Private Sub Form_Unload(Cancel As Integer)
Unload Me
End Sub


Prueva a ver asi, deberia descargarse el form. Tambien puede ser q tu aplicacionj tenga mas de un formulario y se kede cargado en memori, para cerrar todos los formularios al cerrar el principal pones unload + nombreForm.
Esto lo pones en el evento form unload del formulario principal y ya.

1S4ludo

fraktal

Gracias Eon, leere lo de las Apis ya que creo que quedaria mejor que usar un joiner. Y lo de descargarlo, no se propare asi pues yo puse un boton que cerrase, con END, y hasta ahora en todo lo que habia echo me habia funcionado menos con este que lleva winsock, d lo que deduje que quiza fuera pq se quedaba el pueto abierto o algo, pues el formulario se cierra pero si miro en los procesos veo que esta ahi aun. Me di cuenta cuando una vez hice el exe, lo probe, volvi a entrar, y al intentar sobreescribir el mismo archivo con modificaciones me dijo que no podia porque estaba en uso. Probare lo que me comentas aber. Muchas gracias y saludos.