Simple Winsock question

larrylands used Ask the Experts™
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
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

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.
Dear larrylands,
    Let 's try the following link.
    I am strongly sure that this link would give you a good example.

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!!!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial