Visual Basic - Utilización de winsockets

Life is soft - evento anual de software empresarial
 
Vista:

Utilización de winsockets

Publicado por Antonio (8 intervenciones) el 13/07/2001 10:20:29
Normalmente cuando uso un control winsock en un formulario, simplemente lo añado y luego configuro las propiedades localip, localport, remoteip etc ...

pero ahora me ha surgido la necesidad de utilizar un winsock, en un programa totalmente background que ni siquiera tiene un formulario. Lo he intentado hacer de la siguiente forma.

Dim myTCP As Winsock

esto no da ningún error, pero cuando intento invocar a alguna de las propiedades o métodos:

myTCP.localip = "127.0.0.1"

Salta un error en ejecución diciendo que el objeto no está instanciado, el caso es que no puedo hacer algo como:

set myTCP = new Winsock

porque new no admite el tipo de datos Winsock.

Alguien sabe como puedo declarar e instanciar un objeto winsock en un módulo en vez de en un formulario.

Gracias a Todos.
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
sin imagen de perfil

RE:Utilización de winsockets

Publicado por Joan Fàbregas (101 intervenciones) el 13/07/2001 12:52:33
Sencillamente no puedes declarar un objeto Winsock en un modulo.

Lo que puedes hacer es crear un formulario (Form1) en este formulario poner solo un control winsock (Winsock1) i en el modulo:

dim FR1 as new Form1
FRM1.Winsock1.LocalIP=...
...

Solo cuidado que con este sistema si no tienes el ServicePack 5 de VB puedes tener problemas de perdida de recursos del sistema.

Saludos.
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

Estás equivocado

Publicado por Antonio (8 intervenciones) el 13/07/2001 15:39:52
He encontrado como hacerlo, lo voy a poner a continuación por si a alguien le sirve:

To use winsock.ocx without a form, you...

Sinply make a reference to it from VB's Project|References... dialog. Note
that you'll have to Browse to the location of the ocx (the system
directory), and that once you've selected it you'll have to create an
instance of it programmatically in a class:

Private WithEvents mobjWinsock As MSWinsockLib.Winsock

'
Public Sub Connect()

On Error Resume Next

Set mobjWinsock = New MSWinsockLib.Winsock
mobjWinsock.Protocol = sckTCPProtocol
mobjWinsock.RemotePort = Me.RemotePort
mobjWinsock.RemoteHost = Me.RemoteHost

Me.Status = "CLIENT: Connecting to SMTP server"
mobjWinsock.Connect
If Err.Number <> 0 Then
RaiseEvent Error(Err.Number, Err.Description)
Err.Clear
End If

End Sub
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