Tag Archives: c#

[DotNet] Vérifier la disponibilité d’un port en écoute

dotnet microsoft

Nous vivons dans un monde surconnecté, c’est pourquoi la plupart des applications utilisent une architecture Client / Serveur afin de communiquer et transmettre des données.

Lorsqu’on développe une application Serveur qui va se mettre en écoute sur un ou plusieurs ports il est primordial de vérifier leur disponibilité.

En effet, sur une même machine il est impossible de mettre 2 applications en écoute sur le même port their website.

Voici la solution que j’utilise pour effectuer cette vérification de port listener.

[DotNet] Remplacer les caractères accentués et les caractères non imprimables

dotnet special character

La langue française est merveilleuse mais les caractères accentués peuvent vite devenir pénalisant dans le développement d’une application.

En effet, certains logiciels ne supportent pas ou mal l’encodage UTF8, et par conséquent les caractères spéciaux peuvent être mal interprétés.

Je vous propose donc une fonction DotNet qui remplacera les caractères accentués par le caractère équivalent non accentué.

[DotNet] Détecter la fermeture d’une application Console

dotnet microsoft

Aujourd’hui un collègue m’a posé une colle: comment détecter et catcher la fermeture d’une application DotNet de type Console Application.

Pour une application WinForm ou WPF, pas de souci on a les application events mais malheureusement cela n’existe pas pour une application Console.

Mais heureusement il est possible de détecter la fermeture d’une application Console, qu’elle intervienne après un CTRL-C ou après un clic sur la croix de fermeture Windows.

Après quelques recherches sur Google, on a réussi à trouver une solution simple: utiliser les InteropServices et la dll système Kernel32.

[C#] Générateur de combinaisons de mots

csharp

Une fois n’est pas coutume, j’ai eu une problématique intéressante en C# avec mes élèves ingénieurs.

La problématique était la suivante: réaliser une fonction qui génère toutes les combinaisons possibles de mots en connaissant les lettres possibles et la taille des mots. Après plusieurs minutes (une bonne heure en fait) je suis parvenu à faire çà:

static public IEnumerable<string> CreateCombinations(IEnumerable<char> input, int length)
        {
            foreach (var c in input)
            {
                if (length == 1)
                    yield return c.ToString();
                else
                {
                    foreach (var s in CreateCombinations(input, length - 1))
                        yield return c.ToString() + s;
                }
            }
        }

Pour l’utiliser c’est simple:

static void Main(string[] args)
        {
            StreamWriter sw = new StreamWriter("out.txt", false);
            foreach (var s in CreateCombinations("abcdefghijklmnopqrzstuvwxyz", 2))
            {
                sw.WriteLine(s);
            }
            sw.Close();
            Console.WriteLine("end");
            Console.ReadLine();
        }

Merci Internet car j’ai trouvé l’astuce en fouillant un grand nombre de forums. Pas si simple que çà !