Solved

Winsock Visual Basic Question

Posted on 2014-04-13
5
1,126 Views
Last Modified: 2014-04-13
I have a Visual Basic 6 application that I'm writing to connect to two remote micro-controllers.  The micro controllers each have their own IP addresses and ports.  My laptop application has two Winsock controls in a form that I connect and try to read/write data to each controller.  Both controllers are Arduino Ethernets and are programmed to be servers.  My application on my laptop is programmed to connect to each using "sckTCPProtocol".  

Controller 1: Winsock1      192.168.1.100         port 11010
Controller 2: Winsock2      192.168.1.101         port 11011

In my Visual Basic application, I make the connections on loading the app, then I have a timer that I placed the winsock.sendData command in such that I intend to "sendData" periodically to Winsock1 and Winsock2.  Unfortunately, I can't seem to send data to both at the same time.  Both connect but I can't send data to both when running in the same application.  I can comment one and send to the other and vice versa.  But I can't send data to both in the application.  I've tried closing one connection and alternating but that doesn't work.  I don't want to run two separate executables.  

Private Sub Timer1_Timer()
        If Not Winsock2.State = sckConnected Then
                'Winsock2.Connect
                 Winsock2.SendData Packet2
                 'Winsock2.Close
        End If

       
        If Not Winsock1.State = sckConnected Then
                'Winsock1.Connect
                Winsock1.SendData Packet1
                'Winsock1.Close
        End If
End Sub

Any suggestions?  Definitely need help on this one.
0
Comment
Question by:ScottVeitch
5 Comments
 
LVL 35

Accepted Solution

by:
Bembi earned 500 total points
ID: 39997474
Have you tried to close the first connection, then put a DoEvents there and then open the second one to send data. DoEvents allows the system to process background task.
0
 
LVL 24

Expert Comment

by:chaau
ID: 39998085
To connect to more than one host you need to create a Winsock array. You do this by setting a different index for each of the controls. Set the Index property of Winsock1 to 0, and Winsock2 to 1, like this:
Winsock1.Index = 0
Winsock2.Index = 1

Open in new window

You can do this in designer, I believe.
0
 
LVL 12

Expert Comment

by:jkaios
ID: 39998165
0
 
LVL 12

Expert Comment

by:jkaios
ID: 39998167
...Or these...

Creating Client/Server Application using Winsock:
   http://www.codeproject.com/Purgatory/winsock.asp

Using the Winsock Control in Client/Server Applications:
   http://www.15seconds.com/issue/010820.htm

Winsock Programming:
   http://www.devx.com/vb2themax/Article/19879/1954?pf=true
0
 

Author Closing Comment

by:ScottVeitch
ID: 39998190
Using the DoEvents definitely worked.  However, I didn't need to close or open any connections.  I just had the DoEvents in the Sub( ) after the first Winsock1.sendData prior to the second Winsock2.sendData.  Works like a champ now.  Thank you very much.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now