I just upgraded to VB.NET and now whenever i attempt to use the MSWNSCK.OCX control (winsock control), i get a "you do not have liscensing permissions blah blah blah".
How can I fix this?
Printable View
I just upgraded to VB.NET and now whenever i attempt to use the MSWNSCK.OCX control (winsock control), i get a "you do not have liscensing permissions blah blah blah".
How can I fix this?
MSWNSCK.OCX isn't really destined to be used in vb.net , you should be looking at using System.Net.Sockets :)
i'd really like to use the control for a simple test project really quick though..
how do you use "System.Net.Sockets", im not familiar with these .net things.
if you got winsock to run in .net it will throw up allsorts of wierd errors , lots of things dont work how they should ( eg: connection request )Quote:
i'd really like to use the control for a simple test project really quick though
this is an example i found a while back ...
in a class module:
then in your form:VB Code:
[COLOR=BLUE]Imports[/COLOR] System [COLOR=BLUE]Imports[/COLOR] System.Net [COLOR=BLUE]Imports[/COLOR] System.Net.Sockets [COLOR=BLUE]Imports[/COLOR] System.Text [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Class[/COLOR] StateObject [COLOR=BLUE]Public[/COLOR] workSocket [COLOR=BLUE]As[/COLOR] Socket = [COLOR=BLUE]Nothing [/COLOR] [COLOR=BLUE]Public[/COLOR] BufferSize [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR] = 32767 [COLOR=BLUE]Public[/COLOR] buffer(32767) [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte [/COLOR] [COLOR=BLUE]Public[/COLOR] sb [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] StringBuilder() [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Class Public[/COLOR] [COLOR=BLUE]Class[/COLOR] SocketsClient [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Event[/COLOR] onConnect() [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Event[/COLOR] onError([COLOR=BLUE]ByVal[/COLOR] Description [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]String[/COLOR]) [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Event[/COLOR] onDataArrival([COLOR=BLUE]ByVal[/COLOR] Data [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR](), [COLOR=BLUE]ByVal[/COLOR] TotalBytes [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR]) [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Event[/COLOR] onDisconnect() [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Event[/COLOR] onSendComplete([COLOR=BLUE]ByVal[/COLOR] DataSize [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR]) [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Shared[/COLOR] response [COLOR=BLUE]As[/COLOR] [String] = [String].Empty [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Shared[/COLOR] port [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR] = 44 [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Shared[/COLOR] ipHostInfo [COLOR=BLUE]As[/COLOR] IPHostEntry = Dns.Resolve("localhost") [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Shared[/COLOR] ipAddress [COLOR=BLUE]As[/COLOR] ipAddress = ipHostInfo.AddressList(0) [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Shared[/COLOR] client [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) [COLOR=GREEN]'Private Shared RawClient As New Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw) [/COLOR] [COLOR=GREEN]'//raw socket^^ [/COLOR] [COLOR=GREEN]'/// ignore this. [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Sub[/COLOR] Connect([COLOR=BLUE]ByVal[/COLOR] RemoteHostName [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]String[/COLOR], [COLOR=BLUE]ByVal[/COLOR] RemotePort [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR]) [COLOR=BLUE]Try [/COLOR] [COLOR=GREEN]'RawClient = New Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw) [/COLOR] client = [COLOR=BLUE]New[/COLOR] Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) port = RemotePort ipHostInfo = Dns.Resolve(RemoteHostName) ipAddress = ipHostInfo.AddressList(0) [COLOR=BLUE]Dim[/COLOR] remoteEP [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] IPEndPoint(ipAddress, port) client.BeginConnect(remoteEP, [COLOR=BLUE]AddressOf[/COLOR] sockConnected, client) [COLOR=GREEN]'RawClient.BeginConnect(remoteEP, AddressOf sockConnected, RawClient) [/COLOR] [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Sub[/COLOR] SendData([COLOR=BLUE]ByVal[/COLOR] Data() [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR]) [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]Dim[/COLOR] byteData [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR]() = Data client.BeginSend(byteData, 0, byteData.Length, 0, [COLOR=BLUE]AddressOf[/COLOR] sockSendEnd, client) [COLOR=GREEN]'RawClient.BeginSend(byteData, 0, byteData.Length, 0, AddressOf sockSendEnd, RawClient) [/COLOR] [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Sub[/COLOR] Disconnect() [COLOR=BLUE]Try [/COLOR] client.Shutdown(SocketShutdown.Both) [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] client.Close() [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Function[/COLOR] StringToBytes([COLOR=BLUE]ByVal[/COLOR] Data [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]String[/COLOR]) [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR]() StringToBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(Data) [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Function [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Function[/COLOR] BytestoString([COLOR=BLUE]ByVal[/COLOR] Data [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR]()) [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]String [/COLOR] BytestoString = System.Text.ASCIIEncoding.ASCII.GetString(Data) [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Function [/COLOR] [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] sockConnected([COLOR=BLUE]ByVal[/COLOR] ar [COLOR=BLUE]As[/COLOR] IAsyncResult) [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]If[/COLOR] client.Connected = [COLOR=BLUE]False[/COLOR] [COLOR=BLUE]Then[/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError("Connection refused.") : [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Dim[/COLOR] state [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] StateObject() state.workSocket = client client.BeginReceive(state.buffer, 0, state.BufferSize, 0, [COLOR=BLUE]AddressOf[/COLOR] sockDataArrival, state) [COLOR=BLUE]RaiseEvent[/COLOR] onConnect() [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] sockDataArrival([COLOR=BLUE]ByVal[/COLOR] ar [COLOR=BLUE]As[/COLOR] IAsyncResult) [COLOR=BLUE]Dim[/COLOR] state [COLOR=BLUE]As[/COLOR] StateObject = [COLOR=BLUE]CType[/COLOR](ar.AsyncState, StateObject) [COLOR=BLUE]Dim[/COLOR] client [COLOR=BLUE]As[/COLOR] Socket = state.workSocket [COLOR=BLUE]Dim[/COLOR] bytesRead [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer [/COLOR] [COLOR=BLUE]Try [/COLOR] bytesRead = client.EndReceive(ar) [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]Dim[/COLOR] Data() [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Byte[/COLOR] = state.buffer [COLOR=BLUE]If[/COLOR] bytesRead = 0 [COLOR=BLUE]Then [/COLOR] client.Shutdown(SocketShutdown.Both) client.Close() [COLOR=BLUE]RaiseEvent[/COLOR] onDisconnect() [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]If [/COLOR] [COLOR=BLUE]ReDim[/COLOR] state.buffer(32767) client.BeginReceive(state.buffer, 0, state.BufferSize, 0, [COLOR=BLUE]AddressOf[/COLOR] sockDataArrival, state) [COLOR=BLUE]RaiseEvent[/COLOR] onDataArrival(Data, bytesRead) [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] sockSendEnd([COLOR=BLUE]ByVal[/COLOR] ar [COLOR=BLUE]As[/COLOR] IAsyncResult) [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]Dim[/COLOR] client [COLOR=BLUE]As[/COLOR] Socket = [COLOR=BLUE]CType[/COLOR](ar.AsyncState, Socket) [COLOR=BLUE]Dim[/COLOR] bytesSent [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR] = client.EndSend(ar) [COLOR=BLUE]RaiseEvent[/COLOR] onSendComplete(bytesSent) [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub [/COLOR] [COLOR=BLUE]Public[/COLOR] [COLOR=BLUE]Function[/COLOR] Connected() [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Boolean [/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]Return[/COLOR] client.Connected [COLOR=BLUE]Catch [/COLOR] [COLOR=BLUE]RaiseEvent[/COLOR] onError(Err.Description) [COLOR=BLUE]Exit[/COLOR] [COLOR=BLUE]Function [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Try [/COLOR] [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Function End[/COLOR] [COLOR=BLUE]Class [/COLOR]
then you can use the events as you would with winsock.VB Code:
[COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]WithEvents[/COLOR] Client [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] SocketsClient()
damn. ok then thanks lemme give that code a try. i wonder why they took out winsock. many of the controls dont seem to be working, the Database control, the Inet control.... wierd.
well thanks for the code.
This file will fix your Licenceing problems...
(Located on VSENARD2\Extras\VB6 Controls)
Just merge it into your registry and add the controls to ur project
I suggest taking a few days and familiarizing yourself with the Net portion of .Net, you will find that after you get comfortable with it, it puts the winsock control to shame.. You have alot more control over things using the Frameworks sockets. Once you get it, spend a couple hours and write yourself a nice little reusable socket component and you won't ever have to fuss with it again..Quote:
Originally posted by morrowasted
damn. ok then thanks lemme give that code a try. i wonder why they took out winsock. many of the controls dont seem to be working, the Database control, the Inet control.... wierd.
well thanks for the code.
Just my 1/2-a cent on the matter... I too missed the winsock control at first but now I prefer the sockets over the control..