begin process at 2012 05 29 22:11:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Problème de sockets asynchrones


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

Problème de sockets asynchrones

vendredi 25 mars 2005 à 16:47:41 | Problème de sockets asynchrones

Oeil_de_taupe

Bonjour tlm,

Je programme sous Visual C++ 6. J'ai essayé de faire une petit application (avec une fenêtre) pour trnasmettre les nom internet (FQDN) en adresse IP (via le protocole DNS). Pour ca j'ai voulu innover en utilisant la commande WSAAsyncGetHostByName (qui est la commande gethostbyname mais en asynchrone). Mon programme lance donc cette requête (en asynchrone), il envoie la requête (je l'ai vu avec mon sniffer) mais la procédure MainProc...

Es-ce-que qqun aurait une idée pourquoi ça ne marche pas???

Voici mon code

#pragma comment(lib, "Ws2_32.lib")
#include<winsock2.h>

#include<windows.h>
#include"resource.h"

#define BUF_SIZE 1024
#define WM_SOCKET WM_USER + 203

char* bufAdd;
char* lServer;
bool recherche;

LRESULT CALLBACK MainProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmnShow)
{
    HWND hDlg;
    hDlg = CreateDialog(hInstance, (LPCSTR)IDD_DIALOG, NULL, (DLGPROC)MainProc);
    ShowWindow(hDlg, SW_SHOW);

    SetDlgItemText(hDlg, IDC_EDIT, (LPCSTR)"www.google.com");
    recherche = false;

    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0), &WSAData);

    MSG msg;
    while(GetMessage(&msg, NULL, 0,0)== TRUE)
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}

LRESULT CALLBACK MainProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    int  Select;
    switch(message)
    {
    case WM_COMMAND:
        Select = LOWORD(wParam);
        switch(Select)
        {
        case IDCANCEL:
            EndDialog(Dlg, Select);
            PostQuitMessage(0);
            return TRUE;
        case IDC_BUTTON:
            {
                //Reprend l'adresse donnée dans le buffer
                bufAdd = new char[BUF_SIZE];
                lServer = new char[MAXGETHOSTSTRUCT];

                int sBuffer = GetDlgItemText(Dlg, IDC_EDIT, (LPTSTR)bufAdd, BUF_SIZE - 1);
                //Test si le nb de param tappé est le max
                if(sBuffer != 0 && recherche == false)
                {
                    recherche = true;
                    //Lancement de la recherche
                    SetDlgItemText(Dlg, IDC_RECHERCHE, "Recherche en cours...");
                    memset(lServer, 0, MAXGETHOSTSTRUCT);
                    WSAAsyncGetHostByName(Dlg, WM_SOCKET , bufAdd, lServer, MAXGETHOSTSTRUCT);
                    int taille = WSAGetLastError();

                }else
                {
                    delete [] bufAdd;
                }
                return TRUE;
            }
        case WM_SOCKET:
            delete [] bufAdd;

            SetDlgItemText(Dlg, IDC_RECHERCHE, "Aucune recherche en cours");
            delete lServer;
            recherche = false;
            return FALSE;
        }

    default:
        return FALSE;
    }
}

La taupe voit toujours tout (sauf les bugs)


Cette discussion est classée dans : recherche, wm, dlg, bufadd, lserver


Répondre à ce message

Sujets en rapport avec ce message

C/API Win32 - Problème avec System Try.... [ par JimyRyan ] Bonjour.J'ai un programme d'on j'ai créé une interface graphique en C/API Win32.Mon derrnier problème avant de cloturer le developpement de mon prog e Probleme de gestion de clavier win32 [ par fourne ] bonjour,Alors voila je m explique , je fait un logiciel de mix audio tyoe mixman studion pour ceux qui connaissent ... le principe de ce soft est d at Déplacement d'une dlg sans barre de titre ? [ par liv ] Bonjour, Je suis sous Visual C++ .NET en MFC et j'ai une boîte de dialogue sans barre de titre que je souhaiterais pouvoir déplacer quand je clique su Problème de PostMessage [ par goutbouyo ] Salut,Je n'arrive pas à utiliser la fonction PostMessage dans mon programme :#define WM_CONNECTE (WM_USER+1)LRESULT CALLBACK Menu(HWND Dlg,UINT messag message WM_ENTER [ par samia82 ] bonjour a tous novice dans le visual c++ je cherche à créer une sorte de moteur de recherche dans une base de donnée ...je souhaiterai pour lancer ma recherche [ par baby3378 ] bonjour à tous,J'ai construit un programme chat. Je cherche un server internet afin qu'il puisse simplement répèrtorier des ip, pour sincroniser mon c Recherche un programmeur en C temporairement [ par Sannazzarotiti ] Bonjour, je recherche un codeur en C pour le concour qui se deroule sur le site du zero. Il nous manque un assez bon programmeur en C donc pour pouvoi WM_TIMECHANGE et veille [ par goutbouyo ] Salut,Dans mon prog il faut que je sache si l'utilisateur change l'heure de windows.Pour cela, j'utilise WM_TIMECHANGE.Le problème c'est que lorsque l Empecher l'affichage d'une fenêtre dans WM_SHOWWINDOW [ par HeavenForsaker ] Bonjour,Je voudrai savoir si on peux empecher l'affichage d'une fenêtre dans le WM_SHOWWINDOW, j'ai essayé return 1 et return -1, même ShowWindow(hwd, chercher texte dans image [ par MrdJack ] bonjour, je suis à la recherche d'une méthode pour chercher du texte dans une image (bmp est suffisant). le texte est en ligne, peut-etre de couleur,


Nos sponsors


Sondage...

Comparez les prix

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 : 4,243 sec (3)

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