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