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
| #include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "resource.h"
#pragma comment(lib, "ws2_32.lib")
INT_PTR CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE hinst;
SOCKET sock;
char ip[16];
char channel[300];
char nick[512];
char buffer[5000];
int port;
int WINAPI WinMain(HINSTANCE Instance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hinst = Instance;
DialogBox(hinst,(LPCTSTR)IDD_DIALOG1, 0, DlgProc);
}
/******************************************************************************/
INT_PTR CALLBACK DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
switch(wParam)
{
//Connection
case ID_CONNECT:
GetDlgItemText(hwnd,IDC_EDIT1,ip,sizeof(ip));
GetDlgItemText(hwnd,IDC_EDIT4,channel,sizeof(channel));
GetDlgItemText(hwnd,IDC_EDIT5,nick,sizeof(nick));
port = GetDlgItemInt(hwnd,IDC_EDIT3,NULL,NULL);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKADDR_IN sin;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr(ip);
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
while(1)
{
recv(sock,buffer,sizeof(buffer),0);
SetDlgItemText(hwnd,IDC_EDIT1,buffer);
}
break;
//Envoyer message
case ID_ENVOYER:
break;
case ID_DECONNECT:
EnableWindow(GetDlgItem(hwnd, ID_CONNECT), TRUE);
EnableWindow(GetDlgItem(hwnd, ID_DECONNECT), FALSE);
closesocket(sock);
WSACleanup();
break;
}
break;
case WM_CLOSE:
EndDialog(hwnd,1);
closesocket(sock);
WSACleanup();
break;
}
return 0;
} |
Partager