CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Création d'une API C#

1234_bou
1234_bou
Niveau 9
15 juin 2016 à 16:54:23

Bonjour à tous !

Je ne m'attends pas à beaucoup de réponse mais je me lance quand même :p)

Je fais actuellement une API network utlra light qui est un wrapper autour des socket C# qui permet d'envoyer et de recevoir des données de manière très simple. Aussi simple que :


NetworkInstance network = new NetworkInstance();
network.Connect("locahost", 5000);
network.Register(1, receiveMessage); //Partie importante ICI
network.Send(data);

Le code ne devrait en générale pas être plus dur que ça (ca travail beaucoup en dessous avec des threads et des appels asynch). Maintenant j'ai un soucis et je voudrais l'avis des experts :noel:

Je veux que l'utilisateur ait le total controle sur la sérialisation de son objet (binaire à objet ou vice versa). C'est pourquoi il doit "Register" une fonction qui traitera les données une fois le paquet complet recu !

Maintenant qu'elle est la meilleur solution pour effectuer cela ? Un Event ? Un Action ? Je prend toutes les solutions.

Have fun and have a great day !

Nemergal
Nemergal
Niveau 10
15 juin 2016 à 17:06:41

Bonne question, les réponses peuvent m'intéresser. :o))
Pour ma part dans le même concept mais du coté chiffrement, j'étais parti sur une interface que l'utilisateur pouvait implémenter comme voulu :

public interface ISymmetricEncryption {
        byte[] Key { get; }
        byte[] IV { get; }
        byte[] Encrypt(byte[] src);
        byte[] Decrypt(byte[] src);
        bool IsValidKey(string key);
        bool IsValidKey(byte[] key);
    }

Pas sûr que ça soit la bonne méthode.

Si tu voudras bien montrer le morceau de code que tu auras choisir pour implémenter ta solution, je suis preneur !

Message édité le 15 juin 2016 à 17:06:53 par Nemergal
123_bou
123_bou
Niveau 10
19 juin 2016 à 00:54:08

Bon j'ai pris une décision qui fonctionne bien.

J'utilise un pointeur de fonction du type Action<byte[], int>. Cette fonction doit être fournit par le client (celui qui l'utilise). J'utilise une interface qui doit être implémenté pour envoyer des paquets sur le réseau. Entre les deux action (serialize et son contraire) j'introduit des informations supplémentaire dans le paquet qui me permet de retrouver la bonne fonction à appeler une fois recu.

Ca me fait une petite lib qui fonctionne assez bien. :-)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment