kudlav / IPK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IPK: projekt č. 1

Klient-server pro jednoduchý přenos souborů. Verze 0.3 (5.3.2018).

Požadavky

Překladač

Program lze přeložit v překladači podporující standard C++11 (ISO/IEC 14882:2011). Doporučuje se překladač gcc verze 4.8.4 a novější. Pro jiné překladače a starší verze nebyl program testován.

Knihovny potřebné k překladu

  • iostream
  • fstream
  • unistd.h
  • cstring
  • sys/types.h
  • sys/socket.h
  • netinet/in.h
  • netdb.h

Překlad

Překlad lze provést programem make. Pro přeložení serveru i klienta použijte příkaz make all v adresáři s projektem. Pokud potřebujete provést překlad klienta nebo serveru jednotlivě, lze použít příkaz make ipk-client, případně make server-ipk. Pokud není možné použít program \textit{make}, lze programy přeložit následujícími příkazy:

g++ -std=c++11 ipk-client.cpp -o ipk-client
g++ -std=c++11 ipk-server.cpp -o ipk-server

Spuštění

ipk-client

./ipk-client -h host -p port [-r|-w] soubor
  -h <host>
     (IP adresa nebo fully-qualified DNS name) identifikace serveru jakožto koncového bodu komunikace klienta
  -p <port>
    cílové číslo portu v intervalu 0-65535
  -r <soubor>
    klient stáhne soubor ze serveru
  -w <soubor>
    klient nahraje soubor na server

ipk-server

./ipk-server -p <port>
  -p <port>
    číslo portu v intervalu <0;65535>, na kterém server naslouchá

Při použití čísla portu menší než 1024 mohou být pro spuštění vyžadována administrátorská oprávnění. Server se ukončuje signálem SIGINT (Ctrl+C).

Návratové kódy

  • 0 = program skončil v pořádku
  • 1 = chyba při zpracování argumentu
  • 2 = chyba síťového rozhraní (např: nelze vytvořit socket, přiřadit port, vytvořit spojení)
  • 3 = chyba práce se soubory
  • 4 = systémová chyba (selhal příkaz fork) - pouze u ipk-server
  • 5 = chyba komunikace (klient zaslal neplatný požadavek)

Známé chyby

Cílový i zdrojový adresář musí existovat. V případě, že neexistuje, končí program chybou, program adresáře nevytváří.

Autoři

  • Vladan Kudláč - autor projektu

About

License:Apache License 2.0


Languages

Language:C++ 61.0%Language:TeX 36.5%Language:Makefile 1.4%Language:CMake 1.0%