////////////////////////////////////////////////// // Bakalarska praca // // Meno studenta: Tomas Lukac // // Veduci BP: prof. Ing. Milos Drutarovsky CSc. // // Skola: KEMT FEI TUKE // // Datum poslednej upravy: 15.4.2020 // ////////////////////////////////////////////////// #ifndef __KOMUNIKACIA_H__ #define __KOMUNIKACIA_H__ #include #include #include #include #include "kryptografia.h" #include "rs232.h" #define VELKOST_CESTY 64 //velkost retazca, kt. uklada lokaciu suboru #define VELKOST_SUBOR 32 //velkost retazca, kt. uklada velkost prenasaneho suboru #if defined(_WIN32) //makro ktore urcuje win distribuciu ak nieje detekovana #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0600 #endif #include #include #include #define ukoncit_soket closesocket #define socklen_t int //hovori visual c prekladacu aby nalinkoval ws2_32 kniznicu //ak pouzivame minqw pragma sa ignoruje a musime ju zadat pri kompilaci manualne : -lws2_32 #pragma comment(lib, "ws2_32.lib") #else #include #include #include #include #include #include #include #include #include #include #include #include #include #define ukoncit_soket close #endif ////////////////////////////// // TCP/IP KOMUNIKACNY KANAL // ////////////////////////////// /** * pripojit_na_server: realizuje pripojenie na server * @parameter char* ip_adresa : ip adresa servera, na ktory sa chce klient pripojit * @parameter int cislo_portu : cislo portu na ktorom server ocakava komunikaciu * @parameter int pocet_sekund : casovy interval * @vrati int : cislo soketu */ int pripojit_na_server(char *ip_adresa, int cislo_portu, int pocet_sekund); /** * cakat_na_komunikaciu : realizuje vytvorenie soketu a jeho priradenie ku portu, * na ktorom server ocakava komunikaciu * @parameter int cislo_portu: cislo portu na ktorom server bude ocakavat komunikaciu * @vrati int : cislo soketu */ int cakat_na_komunikaciu(int cislo_portu); ///////////////////////////// // RS232 KOMUNIKACNY KANAL // ///////////////////////////// //.. ////////////////////// // PRACA SO SUBORMI // ////////////////////// /** * poslat_subor: realizuje odoslanie suboru * @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu * @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu * @parameter char* cesta: ukazuje na retazec, ktory reprezentuje cestu k suboru * @parameter nastavenia_aplikacie* nastavenia: reprezentuje nastavenia aplikacie: server alebo klient * @vrati int : operacia bola uspesna(0), neuspesna(-1) */ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, const char* cesta, nastavenia_aplikacie* nastavenia); /** * prijat_subor: realizuje prijem suboru * @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu * @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu * @parameter nastavenia_aplikacie* nastavenia: reprezentuje nastavenia aplikacie: server alebo klient * @vrati int : operacia bola uspesna(0), neuspesna(-1) */ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, nastavenia_aplikacie* nastavenia); #endif