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

C++ Discussion :

[Socket] Attente avant l'envoi ?


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut [Socket] Attente avant l'envoi ?
    Salut,

    Je ne savais pas où poster ce sujet alors je le mets là...

    En étudiant SDL_net, et comme je connaissais déja wsock32, je me suis posé une question (qui est valable pour les deux d'ailleurs) : Que se passe t-il lors d'un appel à send() ou SDLNet_Send() ?
    - Soit la donnée est envoyée, puis le programme continue, mais si on envoi 2 Mo ça peut rester bloqué longtemps.
    - Soit la donnée est mise dans une file d'attente et le programme continue, mais alors dans ce cas comment savoir quand la donnée est partie ?

    Je ne voudrais pas mettre des données dans une file d'attente en la remplissant de plus en plus...

    Dans le cas d'un jeu par exemple, pour le serveur, si on envoi plus vite que ce que la connection ne peut transférer...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bon ben en fait j'ai trouvé (monologue powaa) :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <iostream>
    #include <SDL/SDL.h>
    #include <SDL/SDL_Net.h>
     
    using namespace std;
     
    int main(int argc, char **argv)
    {
        SDL_Init(SDL_INIT_VIDEO);
     
        SDL_Surface* sScreen;
        sScreen = SDL_SetVideoMode(800,600,32,SDL_HWSURFACE);
     
        //--------------------------------------------------------------------------
        SDLNet_Init();
     
        IPaddress free;
        SDLNet_ResolveHost(&free,"*********",80);
     
        TCPsocket socket;
        socket = SDLNet_TCP_Open(&free);
     
        char* query = "GET / HTTP/1.1\r\nHost: remram44.free.fr\r\n";
        SDLNet_TCP_Send(socket,query,strlen(query)+1);
     
        query = "this-is-a-test-please-excuse-me-i-am-not-a-spammer";
        int i;
        for(i=0;i<200000;i+=1)
        {
            SDLNet_TCP_Send(socket,query,strlen(query)+1);
        }
     
        cout<<"Envoi terminé";
     
        SDLNet_TCP_Close(socket);
     
        SDLNet_Quit();
        // -------------------------------------------------------------------------
     
        SDL_Quit();
     
        exit(0);
    }
    Ce code mettant du temps pour s'éxecuter, j'en déduis que contrairement à winsock32, SDL_Net attend que tout soit parti.

Discussions similaires

  1. [Socket][Byte] Probleme d'envoi d'une taille de fichier
    Par Erok dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 12/05/2009, 17h38
  2. modification des messages dans la file d'attente de postfix avant l'envoi
    Par navorinco dans le forum Administration système
    Réponses: 4
    Dernier message: 09/03/2009, 16h01
  3. Vérification avant l'envoi de formulaire
    Par navis84 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 10/05/2006, 14h01
  4. [socket] attente de réponse
    Par vasilov dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 19/08/2005, 12h20
  5. [Socket] Attente de lecture
    Par al85 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/01/2005, 11h16

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