====== Winsocket ====== ===== Zadanie 1 - Skaner portów ===== Napisz program skanujący porty pod zadanym adresem IP. Domyślnie skanowanie obywa się w zakresie 0-65535 na localhost. Aplikacja pozwala ustawić adres IP (lub zakres adresów) i zakres portów. Dla każdego aktywnego portu wyświetlany jest stosowny komunikat. Adres IP pobierany jest z kontrolki ''IP Addres Control'', numery portów z kontrolek ''EDIT'' zaś komunikaty o aktywnych portach wypisyswane są w kontrolce ''ListBox'' **Przydatne funkcje ** Kontrolki **Common controls:** plik nagłównowy ''Commctrl.h'' i biblioteka ''Comctl32.lib'' * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761374%28v=vs.85%29.aspx|IP Address Control]]** {{ https://i-msdn.sec.s-msft.com/dynimg/IC423808.png|}} * komunikaty [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761378(v=vs.85).aspx|IPM_GETADDRESS]], IPM_SETADDRESS * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ff485954(v=vs.85).aspx|IP Address Macros:]] \\ ''MAKEIPADDRESS'' \\ ''FIRST_IPADDRESS'' \\ ''SECOND_IPADDRESS'' \\ ''THIRD_IPADDRESS'' \\ ''FOURTH_IPADDRESS'' * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775146%28v=vs.85%29.aspx|List Box]]** * komunikat: [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775181(v=vs.85).aspx|LB_ADDSTRING]] **Winsock:** plik nagłówkowy ''winsock2.h'' i biblioteka ''WS2_32.lib'' * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms742213%28v=vs.85%29.aspx|WSAStartup]]**, **WSACleanup()** \\ inicjalizacja WinSocket * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740506%28v=vs.85%29.aspx|socket]]**, **closesocket()** \\ tworzenie gniazda / zamykanie gniazda * **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms737550%28v=vs.85%29.aspx|bind]]** \\ kojarzy gniazdo z lokalnym adresem * struktura **[[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740496%28v=vs.85%29.aspx|sockaddr_in]]**: informacje o adresie IP, porcie * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738563%28v=vs.85%29.aspx|inet_addr]] \\ zamienia adres IP z postaci łańcucha znakowego do postaci liczby całkoiwtej * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738557%28v=vs.85%29.aspx|htons]] \\ transfrormacja liczby short wymagana przy definiowaniu portu w protokole AF_INET i AF_INET6 * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738556%28v=vs.85%29.aspx|htonl]] \\ transformacja liczby long wymagana przy określaniu adresu IP ww protokole AF_INET i AF_INET6 * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx|shutdown]] \\ wyłącza wysyłanie/odbiór danych przez gniazdo