Client window + socket [sans mfc]

Soyez le premier à donner votre avis sur cette source.

Vue 7 561 fois - Téléchargée 728 fois

Description

Voila un client qui permet d'envoyer n'importe quel message sur n'importe quel ip. Ca peut toujours etre utile pour ceux qui aimerai tester des commandes pour leurs serveurs ... :) en tout cas des foit ca bloques quelques secondes et je ne sais pas pourquoi. merci de me signaler les bugs ou autres @+

Source / Exemple :


#include <windows.h>
#include "resource.h"
#include <winsock.h>
#pragma comment(lib,"wsock32.lib")

BOOL CALLBACK IpDialogFunc(HWND hdlg, UINT mssg, WPARAM wParam,LPARAM lParam) 
{
  switch(mssg) {
    case WM_COMMAND:
      switch(wParam) {
        case IDC_BUTTON1:
        case ID_FILE_EXIT:
          PostMessage(hdlg, WM_COMMAND, IDCANCEL, 0);
          return 0;
        case 1234:
			/*on ouvre le dialog 
          pour la connection du socket

  • /
DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG2), hdlg, IpDialogFunc); return 0; case exit_ : MessageBox(0,"Creer par Creatix(ZzZzZz)","Createur ...",0); PostQuitMessage(0); return 0; case about : MessageBox(0,"Creer par Creatix(ZzZzZz)","Createur ...",0); return 0; case IDCANCEL : EndDialog(hdlg, 0); case envoyer : // permet de stocker l'ip dans string char *string; string = (char *)malloc(GetWindowTextLength(GetDlgItem(hdlg,IDC_EDIT2))+1); (char *)GetWindowText(GetDlgItem(hdlg,IDC_EDIT2),string,GetWindowTextLength(GetDlgItem(hdlg,IDC_EDIT2))+1); // permet de stocker la commande dans string2 char *string2; string2 = (char *)malloc(GetWindowTextLength(GetDlgItem(hdlg,IDC_EDIT1))+1); (char *)GetWindowText(GetDlgItem(hdlg,IDC_EDIT1),string2,GetWindowTextLength(GetDlgItem(hdlg,IDC_EDIT1))+1); //initialisation du socket WSADATA wsadata; WSAStartup(MAKEWORD(1,0),&wsadata); SOCKET sock = socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN sin; //l'ip ou le socket va se connecter sin.sin_addr.s_addr = inet_addr(string); //la famille du socket sin.sin_family = AF_INET; //le port que vous pouvez changer sin.sin_port = htons(21452); //on connect le socket connect(sock,(LPSOCKADDR)&sin,sizeof(sin)); //on send string2 send(sock,string2,sizeof(string2),0); //on close le socket et on libre la memoire closesocket(sock); WSACleanup(); free(string); return 0; } return 0; } return 0; } /*fonction WinMain principale c'est elle qui ets executer en premier
  • /
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { //on ouvre le dialog (qui ets en fait la //fenetre principale DialogBox(0,MAKEINTRESOURCE(IDD_APP), 0, IpDialogFunc); return 0; }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

scottalex3103
Messages postés
2
Date d'inscription
dimanche 15 janvier 2006
Statut
Membre
Dernière intervention
15 janvier 2006
-
pfff, ça marche même pas et je reste poli. Mais sinon les autres ça va.
cs_Kephren
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003
-
Je ne suis pas sur de ce que j'avance mais il me semble qu'il y a une fuite non ?
tu n'as pas libéré la mémoire pour string2. Enfin peut etre que je me trompe. Si c'est le cas dsl

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.