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

Réseau C Discussion :

[SOCKET] problèmes affichage


Sujet :

Réseau C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Par défaut [SOCKET] problèmes affichage
    Bonjour,

    j'ai réaliser un client telnet en C en modifiant un code trouvé sur internet et j'ai des problèmes d'affichage :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     #include <windows.h>
      #include <winsock2.h>
       #include <stdlib.h>
       #include <stdio.h>
       #include <string.h>
     
       DWORD WINAPI ClientRecv(LPVOID arg) {
         SOCKET Client = *(SOCKET*) arg;
         char c = 0;
         while (recv(Client, &c, 1, 0) > 0) printf("%c", c);
         return 0;
      }
     
       DWORD WINAPI ClientSend(LPVOID arg) {
         SOCKET Client = *(SOCKET*) arg;
         char c = 0;
         do if ((c = (char) getc(stdin)) == '\n') send(Client, "\r", 1, 0);
         while (send(Client, &c, 1, 0) > 0);
        return 0;
       }
     
      int main(int argc, char* argv[]) {
         WSADATA WSAData;
         char* port = "23";
        char* host = "localhost";
        SOCKADDR_IN ClientSock;
         SOCKET Client = INVALID_SOCKET;
        HOSTENT* ServerInfos = NULL;
         HANDLE RecvThread = NULL;
         DWORD RecvThreadID = 0;
         DWORD RecvThreadExitCode = 0;
         HANDLE SendThread = NULL;
         DWORD SendThreadID = 0;
         DWORD SendThreadExitCode = 0;
         if (argc > 1) host = argv[1];
         if (argc > 2) port = argv[2];
       printf("connecting to [%s] on port [%s]... ", host, port);
        if (WSAStartup(MAKEWORD(2, 2), &WSAData)) {
           printf("unable to start winsock\n");
           return EXIT_FAILURE;
         }
         if (!(ServerInfos = gethostbyname(host))) {
           printf("unable to resolve remote host\n");
           return EXIT_FAILURE;
         }
         memset(&ClientSock, 0, sizeof(SOCKADDR_IN));
         memcpy(&ClientSock.sin_addr.s_addr, ServerInfos->h_addr, ServerInfos->h_length);
         ClientSock.sin_port = htons(atoi(port));
         ClientSock.sin_family = AF_INET;
         if (!(Client = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP))) {
           printf("unable to create client socket\n");
           return EXIT_FAILURE;
         }
         if (connect(Client, (SOCKADDR*) &ClientSock, sizeof(SOCKADDR_IN))) {
           printf("unable to connect to remote host\n");
           return EXIT_FAILURE;
         }
         if (!(RecvThread = CreateThread(NULL, 0, &ClientRecv, &Client, 0, &RecvThreadID))) {
           printf("unable to create recv thread\n");
           return EXIT_FAILURE;
         }
         if (!(SendThread = CreateThread(NULL, 0, &ClientSend, &Client, 0, &SendThreadID))) {
           printf("unable to create send thread\n");
           return EXIT_FAILURE;
         }
         printf("done\n");
         do {
           Sleep(100);
           GetExitCodeThread(RecvThread, &RecvThreadExitCode);
           GetExitCodeThread(SendThread, &SendThreadExitCode);
         } while (RecvThreadExitCode == STILL_ACTIVE && SendThreadExitCode == STILL_ACTIVE);
         printf("\n\ndisconnected from remote host\n");
         if (RecvThreadExitCode == STILL_ACTIVE) TerminateThread(RecvThread, 0);
         if (SendThreadExitCode == STILL_ACTIVE) TerminateThread(SendThread, 0);
         CloseHandle(RecvThread);
         CloseHandle(SendThread);
         return EXIT_SUCCESS;
       }


    pourquoi ya -t -il autant de problème d'affichage ?

    Pourtant, l'affichage fonctionne très bien quand on se connecte sur un serveur ftp par exemple ...


    comment régler ces problèmes d'affichages svp ? c'est urgent

    merci
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  2. [Thread][socket]Problème de fermeture d'un thread
    Par meda dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 04/11/2004, 01h03
  3. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  4. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31
  5. socket : problème avec GetHostByName
    Par SteelBox dans le forum Réseau
    Réponses: 25
    Dernier message: 19/08/2003, 13h49

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