Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : janvier 2007
    Messages : 31
    Points : 13
    Points
    13

    Par défaut [C# & C++]Problème de Connexion

    Voilà, j'ai un projet personnel en développement. Je dévellope un jeu en C#, basé sur le framework XNA 3.0 et .NET 3.5, et par la suite, j'ai commencé à réfléchir sur le développement d'un serveur de jeu.

    Pour l'instant, le développement est généraliste et peut être utilisé pour n'importe quel projet.

    Donc, pour ce qui est du développement, j'ai essayé de créer une connexion assynchrone car dans beaucoup de jeux, notamment pour les MMO, il est nécessaire de pouvoir recevoir un grand nombre de connexion en même temps sans perdre de données et après recherche, j'ai découvert que les connexions synchrones avaient un risque de perte de données si le taux de transfert dépasse les capacité en réseau.

    J'ai également décidé de créer le serveur sous Linux, car Linux peut tourner sans environnement graphique et est, comme chacun le sait, plus léger que Windows. Or, Linux ne supporte pas le développement de Csharp avec les frameworks choisis. J'ai donc choisis de développer le serveur en C++. Mais je n'ai pas réussis à trouver quoi que ce soit pour les connexions assynchrones multi-language, multi-OS.

    Je suis pas très doué en anglais, mais je me débrouille. Je suis pas très doué en Linux, mais je me débrouille. Je suis pas très doué en compilation, je n'ai jamais réussis à compiler une librairie trouvée sur le net, mais s'il faut vraiment en passer par là, j'y passerai le temps qu'il faut.

    De toute manière, une librairie C# et C++ pour les connexions asynchrones, je suis pas sur que ca existe.

    Je pensais que le language importait peu quand il s'agissait de connexions internet, mais j'en suis plus si sur.

    L'idéal serait de trouver un exemple de code qui fonctionne.

  2. #2
    Membre éclairé Avatar de yodaime
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2006
    Messages : 282
    Points : 314
    Points
    314

    Par défaut

    Citation Envoyé par Velvounet Voir le message
    Or, Linux ne supporte pas le développement de Csharp avec les frameworks choisis.
    Ça n'est pas tout a fait vrai. Tu as regardé du coté du projet Mono le pendant linux du framework .Net ?

    http://www.mono-project.com/Main_Page


    et le petit tuto dev qui va bien :
    http://morpheus.developpez.com/reseaucsharp/

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : janvier 2007
    Messages : 31
    Points : 13
    Points
    13

    Par défaut

    Merci pour ta réponse, mais Mono pour le .NET vers 3.5 est encore en developpement. Ensuite, même si la version actuelle était compatible en network (il faudrait que j'essaie), ce ne serait qu'une solution de secours car j'ai choisis Linux pour sa légèreté et rajouter un framework lourd comme le .NET juste pour la partie .net.sockets serait pas pertinent dans cet optique.

  4. #4
    Membre du Club
    Profil pro
    Ingénieur d'études et développement
    Inscrit en
    décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études et développement

    Informations forums :
    Inscription : décembre 2005
    Messages : 114
    Points : 64
    Points
    64

    Par défaut

    Citation Envoyé par Velvounet Voir le message
    J'ai donc choisis de développer le serveur en C++. Mais je n'ai pas réussis à trouver quoi que ce soit pour les connexions assynchrones multi-language, multi-OS.
    La communication peut se faire sur le client dans un langage/os et sur le serveur sur un autre langage/os. Le tout est d'encoder proprement les données envoyé et d'utiliser le même protocole d'un côté comme de l'autre. Le fait que ce ne soit pas le même os/langage de programmation importe peu.

    Exemple: le jeu dofus. Les serveurs sont en java. Donc cela fonctionne sur n'importe quel os du moment que la machine virtuelle est installée. Pourtant le client est écrit en flash. Bref un langage qui n'a pourtant rien avoir a priori. Mais avec les sockets on arrive à les faire communiquer ensemble. CQFD

    Le fait que ce soit asynchrone ou synchrone dépend seulement du framework utilisé il faut regarder dans la documentation pour voir comment programmer cela. Avec le c# il est aisé comme en java d'utiliser de manipuler les données issues du réseau. En c++ (je manipulé la communication réseau avec et cela fait longtemps que je n'ai plus utilisé ce langage), Mais de mémoire c'était un peu plus compliqué mais il existe des bibliothéques qui facilitait la manipulation. (Du moins si ma mémoire ne m'est pas défaillante, mais d'autres personnes du forums pourront me corriger ).

    Donc avant de penser à manipuler les sockets ce qui est simple en soit sur un langage comme le c#, il faut surtout savoir quel protocole on va utiliser (tcp/udp/ etc). Et quel format auront les requêtes sur le réseau afin qu'à la fois le serveur et le client puissent communiquer sans problème. (Et surtout veiller à utiliser le même encodage pour les données sinon il va y avoir de gros soucis de communication. Car pour peu qu'on utiliser des os différents, l'encodage par défaut sera trés probablement différent).

    Bon courage.

  5. #5
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : janvier 2007
    Messages : 31
    Points : 13
    Points
    13

    Par défaut

    Merci beaucoup pour ces explications.

    Je pense que j'ai dus faires des erreurs de prog, car j'ai pris les exemples de code dans differents endroits et je ne sais plus trop ce qui était utilisé comme protocole udp ou tcp.


    J'ai plus qu'à revoir les differentes librairies et surtout, à les comprendre xD

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •