fai prima uno scan port per verificare su quale porta vuoi metterti in ascolto
quindi puoi utilizzare winsock per porti in ascolto sulla porta...
potresti associare ad un command un codice del tipo:
Private Sub cmdascolta_Click()
If ws.State <> sckclose Then ws.Close
ws.LocalPort = txtport.Text 'ricevo il numero della porta teso
ws.Listen 'mi pongo in ascolto
MsgBox "servizio in ascolto sulla porta: " & txtport.Text, vbInformation
end sub
quindi controlli cosa succede ad una richiesta di collegamento sulla porta indicata nella casella testo txtport.text:
Private Sub Ws_ConnectionRequest(ByVal requestID As Long)
If ws.State <> sckClosed Then ws.Close 'se la porta è aperta la chiudo
ws.Accept requestID 'se arriva richiesta di connessione l'accetto
Dim MyVar
MyVar = Now ' Il valore di MyVar è la data e l'ora corrente.
'aggiungi l'allarme in una label
lstlog.AddItem MyVar & " ALLARME!! IP :" & ws.RemoteHostIP & " sulla porta: " & txtport.Text & MyVar
....................................
.....................................
'qui decidi cosa fare...se chiudere la porta o inviare una risposta all'indirizzo segnalato dall'allarme
End Sub
il form che devi costruire è essenziale:
una casella testo che riceva la porta da monitorare
una label che riceva l'allarme
un command che connette alla porta
un command che disconnetta
un comtrollo winsock