By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,422 Members | 1,615 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,422 IT Pros & Developers. It's quick & easy.

Legacy Client <--> DotNet Listener

P: n/a
I need to keep a few VB6 tcpClients active, but have them talk to a dotNet
tcpServer/tcpListener. The "Server"/Listener is running as a Plugin, and
needs to respond to "outside requests". The dotNet versions of the exe's
that make these requests take MUCH longer to load and start than the VB6
versions, so I'd like to keep the VB6 versions active (at least until the
dotNet versions will load more quickly).

Is there a way for these legacy VB6 programs to communicate with the dotNet
plugin?

TIA,
Geoff
Nov 21 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Geoff,

There shouldn't be an issue with a VB6 TCPclient sending data to a .NET
TCPListener. Any TCPClient can send data to any TCPlistener (assuming port
settings and protocols have been setup correctly). I use a TCPListener in
one of my VB.NET apps to collect information sent via a socket by a group of
PERL apps.

HTH
Lee

"Geoff" <Ge***@discussions.microsoft.com> wrote in message
news:D1**********************************@microsof t.com...
I need to keep a few VB6 tcpClients active, but have them talk to a dotNet
tcpServer/tcpListener. The "Server"/Listener is running as a Plugin, and
needs to respond to "outside requests". The dotNet versions of the exe's
that make these requests take MUCH longer to load and start than the VB6
versions, so I'd like to keep the VB6 versions active (at least until the
dotNet versions will load more quickly).

Is there a way for these legacy VB6 programs to communicate with the
dotNet
plugin?

TIA,
Geoff

Nov 21 '05 #2

P: n/a
Lee,
Thanks! Good to know it should work. That give sme hope.

But I don't seem to be able to MAKE it work. I'm using "locoalhost" as the
server address, and 9001 as the port address.

Do you know of any websites with sample code for communicating between a
"legacy" app and a dotNet app using this technique?
Geoff

"lgbjr" wrote:
Geoff,

There shouldn't be an issue with a VB6 TCPclient sending data to a .NET
TCPListener. Any TCPClient can send data to any TCPlistener (assuming port
settings and protocols have been setup correctly). I use a TCPListener in
one of my VB.NET apps to collect information sent via a socket by a group of
PERL apps.

HTH
Lee

"Geoff" <Ge***@discussions.microsoft.com> wrote in message
news:D1**********************************@microsof t.com...
I need to keep a few VB6 tcpClients active, but have them talk to a dotNet
tcpServer/tcpListener. The "Server"/Listener is running as a Plugin, and
needs to respond to "outside requests". The dotNet versions of the exe's
that make these requests take MUCH longer to load and start than the VB6
versions, so I'd like to keep the VB6 versions active (at least until the
dotNet versions will load more quickly).

Is there a way for these legacy VB6 programs to communicate with the
dotNet
plugin?

TIA,
Geoff


Nov 21 '05 #3

P: n/a
Geoff,

This is a sample of the code I use for the .NET listener

Private Sub MIBS_DoListen()
' Buffer for reading data
Dim bytes(8192) As [Byte]
Dim data As [String] = Nothing
Try
' Listen for new connections.
MIBSlistener = New TcpListener(System.Net.IPAddress.Any,
MIBS_IPORT_NUM)
MIBSlistener.Start()
Do
If MIBSexethread.IsAlive = False Then
MIBSlistener.Stop()
End If
' Create a new user connection using TcpClient
Dim client As TcpClient = MIBSlistener.AcceptTcpClient()
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
' Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine([String].Format("Received: {0}",
data))
' Process the data sent by the client.
MIBS_endok = 2
Update_MIBS_Status(data)
i = stream.Read(bytes, 0, bytes.Length)
End While
Loop Until False
Catch
End Try
Update_MIBS_Status("DROPPED")
End Sub

I set the port number (MIBS_IPORT_NUM) at runtime based on a search of
available ports, then pass the port number as a command line argument to the
external PERL app to use as the Client Port Number. This way I never have
port conflicts and I don't need to worry about hard coding a port number
that a certain user may have blocked in a firewall.

For the client, I don't have VB6 code (LOL, actually, I don't have .NET code
either, at least not handy!), but, as long as the port number is the same
(while using System.Net.IPAddress.Any), the listener will receive whatever
any app dumps onto the port.

While debugging, I write all of the received data to the console as well as
to wherever I want it to go (sometimes it doesn't go where I want it to
go!). So having the console output at least lets me know it was received.
the Update_MIBS_Status function is just a bunch of RegEx expressions that
determine where the data received will be displayed on the form.

I know, somewhere, I have a .NET TCPListener / TCPClient app. If I can find
it, I'll post it for you.

HTH
Lee

"Geoff" <Ge***@discussions.microsoft.com> wrote in message
news:26**********************************@microsof t.com...
Lee,
Thanks! Good to know it should work. That give sme hope.

But I don't seem to be able to MAKE it work. I'm using "locoalhost" as the
server address, and 9001 as the port address.

Do you know of any websites with sample code for communicating between a
"legacy" app and a dotNet app using this technique?
Geoff

"lgbjr" wrote:
Geoff,

There shouldn't be an issue with a VB6 TCPclient sending data to a .NET
TCPListener. Any TCPClient can send data to any TCPlistener (assuming
port
settings and protocols have been setup correctly). I use a TCPListener in
one of my VB.NET apps to collect information sent via a socket by a group
of
PERL apps.

HTH
Lee

"Geoff" <Ge***@discussions.microsoft.com> wrote in message
news:D1**********************************@microsof t.com...
>I need to keep a few VB6 tcpClients active, but have them talk to a
>dotNet
> tcpServer/tcpListener. The "Server"/Listener is running as a Plugin,
> and
> needs to respond to "outside requests". The dotNet versions of the
> exe's
> that make these requests take MUCH longer to load and start than the
> VB6
> versions, so I'd like to keep the VB6 versions active (at least until
> the
> dotNet versions will load more quickly).
>
> Is there a way for these legacy VB6 programs to communicate with the
> dotNet
> plugin?
>
> TIA,
> Geoff


Nov 21 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.