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
| #include <winsock2.h>
#include <windows.h>
#include <string>
u_long argp=1;
SOCKET sock, csock;
SOCKADDR_IN sin, csin;
int sinsize;
char buffer[530];
int connexion(const int port)
{
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
ioctlsocket(sock, FIONBIO, &argp);
}
BOOL APIENTRY Dialog1Proc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nFunsterStil)
{
DialogBox(hThisInstance,"serveur",NULL,(DLGPROC)Dialog1Proc);
}
BOOL APIENTRY Dialog1Proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
SetTimer(hDlg,NULL,50,NULL);
return TRUE;
case WM_COMMAND:
if(LOWORD(wParam)==1001) {
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
connexion(4444); }
if(LOWORD(wParam)==1002) {
sprintf(buffer,"%d",send(csock,"coucou",7,0)); //copie la valeur retournée pat send()
SetDlgItemText(hDlg,201,buffer); }//affiche cette valeur
return TRUE;
case WM_TIMER:
sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
sprintf(buffer,"%d",send(csock,"Hello world!\r\n",15,0)); //copie la valeur
SetDlgItemText(hDlg,201,buffer); //affiche cette valeur
return 0;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
default:
return FALSE;
}
} |
Partager