Socat je programski paket koji omogućava dvosmjerni prijenos podataka između dva nezavisna podatkovna kanala (datoteka, cjevovoda, uređaja, priključnica, opisnika datoteka, programa, itd.). Podržan je na operacijskim sustavima Unix/Linux, HP-UX, AIX, Mac OS, Sun Solaris i Windows, pri čemu se na sustavima Windows pokreće unutar okruženja “Cygwin”. Instalacija paketa provodi se tipično pokretanjem naredbi “./configure”, “make” i “make install” s administratorskim ovlastima, a za prevođenje programa preporuča se korištenje prevoditelja “gcc”. U slučaju problema s bibliotekama o kojima ovisi funkcionalnost paketa, postoje opcije za prevođenje bez njihovog korištenja. Osnovno korištenje socata najčešće se sastoji od četiri faze – “init”, “open”, “transfer” i “closing”. U fazi inicijalizacije analiziraju se korisnički zadane opcije i inicijalizira se zapisivanje (eng. logging). U sljedećoj fazi otvaraju se zadane adrese, pri čemu je ova faza najčešće blokirajuća, odnosno mora se izvršiti prije naredne faze. U fazi prijenosa podataka socat prati opisnike datoteka na obje strane i u slučaju da na jednoj strani postoje podaci za prijenos te ih druga strana može zapisati, pokreće prijenos. Konačno, kad se u jednom toku podataka otkrije kraj datoteke (EOF), započinje faza zatvaranja u kojoj se zatvaraju otvoreni tokovi podataka. Korištenje alata nije sasvim jednostavno pa se korisnicima preporuča prethodno proučavanje pomoćnih datoteka u kojima se nalaze objašnjenja svih opcija koje socat nudi.
$downloadlink = get_field('download_link'); ?>