Specifica meglio: quello di cui parli è un TCPing? oppure qualcosa
simile a netstat per vedere se una tua porta è aperta o meno?
Nel primo caso è semplice: basta aprire una connessione verso quella
porta. Se la connessione si apre, ok. Se va in timeout la porta non è
aperta.
Appoggiandosi a PCap dovrebbe essere possibile fare una richiesta di
connessione "parziale", ossia mandare solo un Syn alla porta remota e
non mandare la connect (metodo utilizzato da programmi come nmap per
fare port scan su macchine remote)
Nel secondo caso non saprei. Cercare di aprire una connessione in listen
sulla porta in questione ti dice certamente se questa è libera o meno,
ma c'è sicuramente una via molto più semplice (e decisamente migliore)
per interrogare lo stack TCP e sapere quali porte sono aperte e quali no
sull'interfaccia di rete.
Nel caso del TCPing, prova a guardare qui
http://www.elifulkerson.com/projects/tcping.php
Dovrebbero esserci anche i sorgenti.
Luca
> Mi domandavo quale sia il metodo per interrogare vedere se una porta è
> aperta oppure no. Un metodo simile al Ping ma su una porta specifica TCP.
A questo indirizzo puoi trovare qualche suggerimento interessante:
http://stackoverflow.com/questions/570098/in-c-how-to-check-if-a-tcp-port-is-available
HTH,
--
Alberto Dallagiacoma - [MCP, MCTS SQL Server 2005]
My Blog: http://blogs.ugidotnet.org/Alby
DotDotNet: http://www.dotdotnet.org
>
> Nel secondo caso non saprei. Cercare di aprire una connessione in listen
> sulla porta in questione ti dice certamente se questa è libera o meno,
> ma c'è sicuramente una via molto più semplice (e decisamente migliore)
> per interrogare lo stack TCP e sapere quali porte sono aperte e quali no
> sull'interfaccia di rete.
Temo di dover essere mooolto più specifico. In effetti il lavoro da fare
è lato Compact Framework (2.0-3.5) per scavalcare il problema del lungo
timeout della connect del tcpclient. Quando effettuo la connect dal
tcpclient o dal socket sottostante il tempo di timeout è di 50 sec non
modificabile. Ho visto che il ping invece ha dei tempi di risposta
notevolmente più bassi e personalizzabili e da li che mi è venuta l'idea
di cercare un metodo per interrogare una porta oltre all'IP. Se ottengo
risposta dall'IP interrogo la porta.
>
> Nel caso del TCPing, prova a guardare qui
> http://www.elifulkerson.com/projects/tcping.php
> Dovrebbero esserci anche i sorgenti.
>
Grazie, in ogni caso, del suggerimento.
> Luca
Ho dato un occhiata ai suggerimenti ma putroppo temo che alcuni di
questi metodi e classi mi siano preclusi sotto il compact framework. Ma
grazie ugualmente.