begin process at 2012 05 29 20:53:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

probleme bizzare....


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme bizzare....

mardi 23 janvier 2007 à 19:11:56 | probleme bizzare....

lektrosonic

Bonsoir, j ai code ce client...

Code C:
#include <windows.h>
#include <winsock2.h>
#include <shlwapi.h>

#define ID_CONNECT 1
#define ID_SEND 2

#define WM_SOCKET (WM_APP + 100)



LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);



/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

HWND hwnd_connect;
HWND hwnd_send;

HINSTANCE HInstance;

WSADATA WSAData;

SOCKET sock;
SOCKADDR_IN ws_sin;

char buffer[1024]="";






int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */
    HInstance=hThisInstance;
    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           WS_EX_CLIENTEDGE,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "CLIENT",       /* Title Text */
           WS_SYSMENU, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           280,                 /* The programs width */
           200,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_SOCKET:
             {
                     switch(LOWORD(lParam))
                     {
                                           case FD_READ:
                                                {
                                                        
                                                         recv(sock, buffer, sizeof(buffer), 0);
                                                         SetWindowText(hwnd,buffer);
                                                }                                             
                                                break;
                                           case FD_CONNECT:
                                                {
                                                         SetWindowText(hwnd,"Connected");
                                                             
                                                }
                                                break;
                                           case FD_CLOSE:
                                                {
                                                         SetWindowText(hwnd,"Disconnected");
                                                }
                                                break;
                                          
                     }          
             }
             break;
        case WM_COMMAND:
                        switch(LOWORD(wParam))
                        {
                                              case ID_CONNECT:
                                              {
                                                        connect(sock, (SOCKADDR *)&ws_sin, sizeof(ws_sin));
                                              }
                                              break;
                                              case ID_SEND:
                                              {
                                                      
                                                       send(sock,"test",sizeof(char)*(strlen("test")),0);
                                              }
                                              break;
                        }
                        break;
        case WM_CREATE:
             {
                   hwnd_connect=CreateWindowEx(WS_EX_CLIENTEDGE,"BUTTON","Connect",WS_CHILD|WS_VISIBLE,5,10,90,25,hwnd,(HMENU)ID_CONNECT,HInstance,NULL);      
                   hwnd_send=CreateWindowEx(WS_EX_CLIENTEDGE,"BUTTON","Send",WS_CHILD|WS_VISIBLE,5,40,90,25,hwnd,(HMENU)ID_SEND,HInstance,NULL);      
                  
                   WSAStartup(MAKEWORD(2,0), &WSAData);
                   ws_sin.sin_addr.s_addr=inet_addr("127.0.0.1");
                   ws_sin.sin_family=AF_INET;
                   ws_sin.sin_port=htons(7878);
                   sock = socket(AF_INET,SOCK_STREAM,0);
                   bind(sock,(SOCKADDR *)&ws_sin,sizeof(ws_sin));
                   WSAAsyncSelect(sock,hwnd,WM_SOCKET,FD_WRITE|FD_READ|FD_CONNECT|FD_CLOSE);
                  
             }
             break;
        case WM_DESTROY:
            WSACleanup();
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}


Ce qui est vraiment bizzare , et qui me rend fou, c est que quand je lance uniquement ce client (sans aucun serveur), je click sur Connect, la connection est etablie..et puis si je click sur Send, ma fenetre a pour title "test" !
On dirrai que le client est connecte a lui meme !! Je comprend plu rien la


l3KTr0 Was HeRe
mardi 23 janvier 2007 à 20:09:25 | Re : probleme bizzare....

yoyo269

Membre Club
Salut !

Mais pourquoi tu fais un bind ?
Tu sais à quoi ça sert ?

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

mercredi 24 janvier 2007 à 19:00:21 | Re : probleme bizzare....

lektrosonic

non, explique moi..je croyai que c etai pour determiner l adresse et le port ou le socket va se connecter

l3KTr0 Was HeRe
mercredi 24 janvier 2007 à 20:29:37 | Re : probleme bizzare....

yoyo269

Membre Club
LOL ! Autant pour moi, j'ai confondu avec listen qui sert à écouter !
Oh ! Tiens un parachute ! Qu'est-ce qu'il fait là ? lol
Plus sérieusement, là du coup je vois pas de souci à première vue. Je teste ton programme pour voir et je te tiens au courant.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

mercredi 24 janvier 2007 à 20:36:47 | Re : probleme bizzare....

yoyo269

Membre Club
Après un test vite fait et répété plusieurs fois, le client se connecte chez moi aussi mais il ne reçoit rien du tout quand je clique sur SEND.
Donc là je ne vois pas d'où peut venir le problème.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

mercredi 24 janvier 2007 à 22:32:36 | Re : probleme bizzare....

lektrosonic

lol pour le parachute..c est vraiment bizzare nan ?

l3KTr0 Was HeRe
mercredi 24 janvier 2007 à 23:42:26 | Re : probleme bizzare....

yoyo269

Membre Club
Oui assez !
Moi ya qq chose qui m'échappe.
Mais si ça se trouve c'est tout bête et j'ai pas vu .

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 25 janvier 2007 à 01:18:27 | Re : probleme bizzare....

lektrosonic

si tu trouve tien moi au courant...les autres vous ne voyez pas ce qui cause sa ?

l3KTr0 Was HeRe


Cette discussion est classée dans : wincl, hwnd, window, ws, sin


Répondre à ce message

Sujets en rapport avec ce message

Je debute: [ par phpman ] Bonjour,je debute avec devc++, quand je creer un nouveau projet il me génère le code d'une form windows:#include /* Declare Windows procedure */LRESUL Problème d'initailisation objet IDirect3DDevice9 [ par olivierpot2 ] Bonjour à tous,je débutes en c++ directx et j'avoue que j'ai un peu (beaucoup) de mal...Dans le code suivant je n'arrives pas à initilalisé la variabl siouplait la charite pour un pov newbie [ par seichettmorru ] je compile, ca marcheje lance ca me dit "impossible de communiquer avec la carte"j'ai une geforce ti+directx 8.vous etes mon dernier recours:#include probleme de compilation (débutant) [ par cddvdcopy ] je suis débutant, merci de m'éclairer !! ce code marche : #include #define ID_SFC 100 #define ID_RECHERCHE 200 #define ID_EXIT 300 Application [ par Arnauti ] Bonjour, je suis nul et j'ai presque jamais fait de C/C++. Enfin, si quelque truc sous dos. Mais j'aimerais créé une aplication mais pas sous dos. Al insertion d'une phrase [ par chinois57 ] ou doige mettre une phrase du style sa va#include /*  Declare Windows procedure  */LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /*  Refresh Fenetre Api Windows [ par wxccxw ] salut :) bon voila mon petit Probleme, je suis en train de faire une fenetre qui va afficher en temps reel la ram utilise !donc je recupere la ram tou Win32 problème. [ par TeniX ] Salut, Voila j'ai crée de maniere simple une source qui exprime mon problème , je trouve pas la source du problème , enfaite quand les fenêtres sont l C++ windows [ par notour ] bonjourj'ai réalyser un programme de cryptage de texte sous page DOS mais pour des raison pratique je souh tjr aide applications windows [ par chinois57 ] je suis desoler de denouveau vous enbeteer avec sa mais je ne comprend pas comment afficher un message dans une fenetre windows applicatios j'utilise


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales