salut,
comment faire pour savoir très simplement si un port est ou non utilisé, pour tester sa disponibilité en gros.
merci
salut,
comment faire pour savoir très simplement si un port est ou non utilisé, pour tester sa disponibilité en gros.
merci
Com, Parallèle, USB, TCP, ... plein de ports, plein d'API
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
désolé, je parlais du TCP
bon j'ai fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm1.Button1Click(Sender: TObject); begin if serversocket1.Active then serversocket1.Active:=false; try serversocket1.Port:=strtoint(edit1.text); serversocket1.Active:=true; showmessage('oui'); except showmessage('non'); end; end;
ça à l'air de marcher bien, si vous voyez quelque chose à modifier ou si vous avez une solution plus simple je suis prenneur![]()
un ServerSocket va ouvrir le port pour que des clients puissent s'y connecter ... normalement un firewall devrait faire échouer l'ouverture, d'ailleurs, un autre ServerSocket déjà ouvert devrait faire de même ...
maintenant, tout dépend ce que tu veux faire, si c'est pour faire un transfert de fichiers simultanés, autant géré toi même dans ton programme ta table des ports que tu utilises, et si tu crainds que d'autres applications te piques tes ports, tu peux effectivement faire ce code et renseigner ta table de port dans un thread par exemple, pour ne pas bloquer l'application en permanence pour le test de port ...
Sinon Active est déjà à true, c'est qu'il est disponible et ouvert par ton objet, non ? donc pourquoi le faire pour le réouvrir ???
Pour une question de lisibilité, j'utilise Open et Close, ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
si tu veux parler de ceci :Envoyé par ShaiLeTroll
if serversocket1.Active then
serversocket1.Active:=false;
c'est parce que je faisais plusieurs tests, et si le programme m'indiquait "oui" et que je voulais tester autre chose, il fallait désactiver le server
sinon comment est-ce que tu aurais fais avec open et close ?
(dans mon projet, le client communique déjà avec le serveur (on exclue donc ici le problème du firewall), et je veux ouvrir un autre port, donc je demande au serveur d'executer ce code pour vérifier qu'un port est disponible)
Ah, en gros ton programme discute avec son client sur le port 20000, et tu veux libérer la place pour d'autres clients, donc tu routes ce client sur un autre port comme le 20001 et tu veux savoir avant si il est dispo, effectivement à part tenter d'ouvrir le socket, je ne connais pas les api qui test le port simplement, j'ouvre et si ça plante c'est que bloquer ou déjà pris ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Partager