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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| // Réception des messages
LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static SOCKET sock;
SOCKADDR_IN sin;
WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);
switch (msg)
{
// Ferme le programme
case WM_DESTROY:
PostQuitMessage(0);
break;
// Reception des commandes
case WM_COMMAND:
// Détruit la fenètre si on clique sur le boutton quitter
if((LOWORD(wParam) == ID_BUTTON_10) && (HIWORD(wParam) == BN_CLICKED))
DestroyWindow(hwnd);
// Vérifie si on à cliquer sur le bouton Connexion
if ((LOWORD(wParam) == ID_BUTTON_11) && (HIWORD(wParam) == BN_CLICKED))
{
// Va contenir le texte du EditBox
char *Port = NULL;
// Va contenir le nombres de caractères dans le EditBox
unsigned int IPLen = 0;
unsigned int PortLen = 0;
// Récupère le nombre de caractères dans le EditBox
IPLen = GetWindowTextLength(IPHandle);
PortLen = GetWindowTextLength(PortHandle);
// S'il n'est pas vide
if (IPLen && PortLen)
{
// Alloue de la mémoire pour stocker le texte
IP = new char[(IPLen + 2)];
Port = new char[(PortLen + 2)];
// Récupère le texte
IPLen = GetWindowText(IPHandle, IP, (IPLen + 1));
PortLen = GetWindowText(PortHandle, Port, (PortLen + 1));
// Conversion des variable char en int
IntPort = atoi(Port);
////////////////////////////Connexion///////////////////////////////////
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=inet_addr(IP);
sin.sin_port=htons(IntPort);
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(connect(sock,(SOCKADDR*)&sin,sizeof(sin)))
{
MessageBox(MainHandle, "Erreur lors de la connexion.", "Erreur", MB_ICONERROR | MB_OK);
exit(0);
}
////////////////////////////////////////////////////////////////////////////////
}
if (!IPLen || !PortLen)
{
MessageBox(MainHandle, "Vous devez tout remplir.", "Erreur", MB_ICONERROR | MB_OK);
}
}
if((LOWORD(wParam) == ID_BUTTON_1) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 1);//Connect est la fonction qui envoit des strings au server
//le premier parametre est le socket et le second parametre indique la string à envoyer.
if((LOWORD(wParam) == ID_BUTTON_2) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 2);
if((LOWORD(wParam) == ID_BUTTON_3) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 3);
if((LOWORD(wParam) == ID_BUTTON_4) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 4);
if((LOWORD(wParam) == ID_BUTTON_5) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 5);
if((LOWORD(wParam) == ID_BUTTON_6) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 6);
if((LOWORD(wParam) == ID_BUTTON_7) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 7);
if((LOWORD(wParam) == ID_BUTTON_8) && (HIWORD(wParam) == BN_CLICKED))
Connect(sock, 8);
// Libère la mémoire
delete [] IP;
// Normalement ici il y a le delete [] Port mais il plante à la compilation
break;
default: // Par default...
return DefWindowProc(hwnd, msg, wParam, lParam);
break;
}
return 0;
} |
Partager