Visual Basic - Crear un Winscock por Codigo

Life is soft - evento anual de software empresarial
 
Vista:

Crear un Winscock por Codigo

Publicado por Mariano (7 intervenciones) el 07/05/2003 05:33:25
Hola, bueno.. justmaente estoy buscando la forma de crear un Winsock desde codigo. Sin tener que crear el winsock(array) en el formulario.
Quiero que por medio de codigo en un modulo por ejemplo, pueda darle vida a un Winsock nuevo totalmente.

Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear un Winscock por Codigo

Publicado por maCo (123 intervenciones) el 07/05/2003 07:08:46
no se para que harias eso, pero si se puede.
debes unir a las referencias de VB el control activex Winsock (MSwinsck.ocx)
luego si has trabajado con controles activex es lo mismo.
por ejemplo en un modulo escribes algo asi:

Public Function CrearNuevoSocket() As Winsock
Dim Socket As Winsock

Set Socket = New Winsock
Set CrearNuevoSocket = Socket
Set Socket = Nothing
End Function

con esa funcion que crea un winsock al llamarla
luego en tu formulario podria ser algo asi:

Option Explicit
Private WithEvents Socket As Winsock

Private Sub Form_Load()
Set Socket = CrearNuevoSocket

Socket.RemoteHost = "www.microsoft.com"
Socket.RemotePort = "80"
Socket.Connect
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Set Socket = Nothing
End Sub

Private Sub Socket_Connect()
Call MsgBox("Socket Conectado a " & Socket.RemoteHostIP)
End Sub

eso es lo basico de como podrias hacerlo
chao
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un Winscock por Codigo

Publicado por Mariano (7 intervenciones) el 07/05/2003 19:40:44
Muchisimas gracias. Voy a probarlo.
Y ya que estamos te explico para que lo quiero. Lo que intento es modular lo mas posible. Intento separar todo lo mas que pueda. Asi, quiero poder hacer un modulo que use winsocks... y poder incluirlo en cualquier aplicacion en la cual necesita repetir su funcion, sin tener que siquiera molestarme en crear un winsock y asiganrle el nombre.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un Winscock por Codigo

Publicado por Mariano (7 intervenciones) el 07/05/2003 20:03:14
Maco, copie exactamente el codigo que me diste. La funcion en un modulo y el resto en el form. Y me dice que en la linea "Set Socket = New Winsock" de la funcion hay un error. Dice que el uso de la palabra clave New no es valido.

Estoy usando el VB6 que viene con el VS6 y agrege el componente "Microsoft Winsock Control 6.0 (SP5)"

Bueno, si tenes idea de porque pasa eso, avisame.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un Winscock por Codigo

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/05/2003 20:37:57
No funciona porque WinSock es un control OCX y la interfaz que posee no se puede aplicar el "WithEvents" ni el "New", por esa razón tenés que pegarlo en un form y luego crear el Array de controles en cuestión.

Es como en el caso de un control TextBox o CommandButton, no podes hacer "Set x = New TextBox"

Para hacer lo que queres tendrías que usar las API's de Winsock pero en su gran mayoría utilizan estructuras, funciones callback y punteros a otras funciones por lo que tendrías que capturar los eventos que generen esas API's (con GetWindowLong, SendMessage, y CallWindowProc) lo que es bastante tedioso trabajarlo. Por tal razón existe el control que tiene encapsulado el manejo de esas API's.

Teóricamente en VB todo ésto podría hacerse, pero creo que si queres hacer algo así es mejor hacerlo en VC++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un Winscock por Codigo

Publicado por maCo (6 intervenciones) el 08/05/2003 21:03:52
como lo puse en mi mensaje anterior..
tienes que unir el control activex winsock, a las referencias de visual basic, no a la paleta de componentes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar