IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Socket et tableau de byte de la bonne taille


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 48
    Points : 46
    Points
    46
    Par défaut Socket et tableau de byte de la bonne taille
    Bonjour,

    J'ai un problème de conception au niveau de l'utilisation des sockets je fais un petite application client/serveur toute simple mon serveur se met bien écoute et des qu'il reçoit des données enclenche la fonction recieve. Le problème c'est que je suis obligé de déclarer un tableau de byte plus grand que le message que j'envoie pour réceptionner les données et ensuite de refaire une boucle pour avoir un tableau de la taille exacte. Ma question est de savoir s'il y a une façon plus jolie/correct pour la réception des données. Je met mon code ci-dessous.

    Merci par avance

    Code serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
            Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
                sk.Bind(new IPEndPoint(Dns.GetHostEntry("localhost").AddressList[0], 1031));
     
     
                sk.Listen(10);
                Socket sk2 = sk.Accept();
     
                byte[] tb = new byte[100];
     
                byte[] tbf = new byte[sk2.Receive(tb, tb.Length, SocketFlags.None)];
     
                for (int i = 0; i < tbf.Length; i++)
                    tbf[i] = tb[i];
                File.WriteAllBytes(@"c:\test2.txt", tbf);

    Code client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            public void test()
            {
                Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
                sk.Connect("localhost", 1031);
                String s = "coucou du client";
     
                byte[] tb = ASCIIEncoding.Default.GetBytes(s);
                sk.Send(tb, tb.Length, SocketFlags.None);
                //sk.SendFile(@"c:\test.txt");
                sk.Close();
            }

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    .net remoting permet de pas avoir à coder la partie transfert qui est plutot chiante à écrire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bonjour ,

    essai de travail avec tcplistner et tcpclient c'est très simple et très pratique

    dans le tcpclient /tcplistner tu peut travail avec des flux
    (networkstream )

Discussions similaires

  1. [Socket][File] Envoyer un tableau de byte
    Par itsmii dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 30/01/2014, 09h10
  2. Socket, tableau de byte et Hexa
    Par hussein47 dans le forum VB.NET
    Réponses: 6
    Dernier message: 19/08/2009, 17h57
  3. probleme d allocation avec un tableau de BYTE
    Par e1lauren dans le forum C++
    Réponses: 5
    Dernier message: 06/05/2005, 13h42
  4. [VB.NET] Tableau de bytes Lecture/Ecriture
    Par BenoitM dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/04/2005, 09h51
  5. [C#] Convertir un tableau de byte en Image
    Par goulhasch dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo