Simple Winsock question

Posted on 2003-10-22
Medium Priority
Last Modified: 2013-11-13
I need to remotely press a key on several machines on a Win 98 network. I know I need two apps, one on the "main" machine that sends a signal out via Winsock, and one on the remote machine that looks for that signal, and presses a key once received. I'm a novice, but I know how to press the key, and I know Winsock is capable of the communication but I know nothing about winsock or how to use it.

Can anyone give me sample code, or tell me where to find it for each end that will accomplish this task?

Thanks much,
Larry L
Question by:larrylands

Expert Comment

ID: 9603437
Hi larry,

 I think you need to have a server application that listens to a port and u also need a client application to send a key(I donno what is signal ...u mean what kind?) ..

 There are two ways u can use a winsock control. Winsock u can use to listen to perticular port like this.. "Winsock1.Listen" and from the client u can connect to that perticualr port for which the server is binding "winsock1.connect IP,Port". I hope this helps.

 And ask me if u still have some trouble in achieving this..
 all the best.

Expert Comment

ID: 9603706
Dear larrylands,
    Let 's try the following link.
    I am strongly sure that this link would give you a good example.

Accepted Solution

NeXus earned 500 total points
ID: 9605228

heres a solution for you (really simplified)...

Make 1 module & 2 forms (once you are happy copy the forms into seperate projects)

on form 1 draw 2 winsock controls (leave the names intact)
in form 1 paste :

Private Sub Form_Load()
    Winsock1.LocalPort = 9000
    MsgBox "Listening on port:" & 9000
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    Winsock2.Accept requestID
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    Winsock2.GetData data, vbString
    MsgBox "Received:" & data
End Sub

on form 2 draw 1 winsock control (leave the name intact)
in form 2 paste :

Private m_connected As Boolean

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    If m_connected Then
        Winsock1.SendData Chr(KeyCode)
    End If
End Sub

Private Sub Form_Load()
    Winsock1.RemoteHost = ""
    Winsock1.RemotePort = 9000
End Sub

Private Sub Winsock1_Connect()
    m_connected = True
    MsgBox "Connected to " & Winsock1.RemoteHostIP
End Sub

in the module  paste :

Sub main()
End Sub

Make sure the project is set to start with sub main
and hit F5

give focus to Form2 and type a key....

have fun!!!


Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

627 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