////////////////////////////////////////////////// // Bakalarska praca // // Meno studenta: Tomas Lukac // // Veduci BP: prof. Ing. Milos Drutarovsky CSc. // // Skola: KEMT FEI TUKE // // Datum poslednej upravy: 12.3.2020 // ////////////////////////////////////////////////// #ifndef __KOMUNIKACIA_H__ #define __KOMUNIKACIA_H__ #include #include #include #include #define VELKOST_CESTY 64 //velkost retazca, kt. uklada lokaciu suboru #define VELKOST_SUBOR 32 //velkost retazca, kt. uklada velkost prenasaneho suboru #define VELKOST_HASHU 20 #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 #define EINPROGRESS WSAEINPROGRESS #define EINTR WSAEINTR //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 #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 // ///////////////////////////// /** * rs232_zapis: umoznuje zapis dat do serialoveho portu * @parameter WOLSSL* ssl : ukazuje na aktualnu relaciu * @parameter char* buf : ukazuje na buffer, do kt. zapise wolfssl zasifrovany text na odoslanie * @parameter int sz : velkost buffera * @parameter void* ctx : ukazuje na WOLFSSL_CTX strukturu * @vrati int */ int rs232_zapis(WOLFSSL *ssl, char *buf, int sz, void *ctx); /** * rs232_citanie: umoznuje citanie dat zo serialoveho portu * @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu * @parameter char* buf : ukazuje na buffer, kde prichadzajuci zasifrovany text by mal byt nakopirovany * aby ho wolfssl mohla odsifrovat * @parameter int sz : velkost buffera * @parameter void* ctx : ukazuje na WOLFSSL_CTX strukturu * @vrati int */ int rs232_citanie(WOLFSSL *ssl, char *buf, int sz, void *ctx); ////////////////////// // 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 * @vrati int : operacia bola uspesna(0), neuspesna(-1) */ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta); /** * prijat_subor: realizuje prijem suboru * @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu * @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu * @vrati int : operacia bola uspesna(0), neuspesna(-1) */ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx); #endif