Kako pokrenuti C program na web stranici bez otkrivanja koda

Kako pokrenuti C program na web stranici bez otkrivanja koda

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Pozdrav, napisao sam zaista složen (oko 2000 linija koda) C program, i želim ga pokrenuti na svojoj web stranici. Znam da postoje neki servisi u koje možete zalijepiti svoj kod i pustiti da ga svi kompajliraju i pregledaju. Ali želim to napraviti na način da posjetitelji mogu samo pokrenuti kod, bez gledanja. Također, želim ažurirati ako je potrebno i taj program bi trebao biti 24h dostupan. Dakle pravi hosting, a ne preko local hosta da idem. Postoji li način da to uradim, možete li mi objasniti?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14822
  • Gde živiš: Niš

Da ga pokreneš na web stranici a da ne podeliš kod sa klijentom - vrlo teško. Kod je skup naredbi koje računar izvršava, i ako želiš da računar klijenta (web stranica) izvršava te naredbe, mora se predati kod. Logično, zar ne?

Međutim, postoji rešenje, a to je da se tvoja aplikacija pokreće na serveru, i da ima neki API koji web stranica može da poziva. Kod C programa način da se napravi tako nešto je upotreba CGI-a. Evo malo detalja: https://jkorpela.fi/forms/cgic.html Sigurno možeš da izguglaš još tonu materijala na tu temu, ali mislim da je to malo zastarela tehnologija koja nije nešto popularna danas. Što ne znači da nije dobra, već znači da ćeš morati malo da se pomučiš da napraviš sve to da radi na način na koji si zamislio. Very Happy

Drugi način bi bio da priložiš samo binary (executable) koji klijenti mogu da preuzmu i pokrenu na svom računaru. Ali to se ne pokreće u browseru, i čik pogodi - ako si predao binary, što je onaj skup naredbi pomenut gore, ti si praktično predao kod. Very Happy Postoji način da se takav binary dekompajlira i od njega se dobije kod koji se po potrebi može promeniti i ponovo kompajlirati. Istina, u tom procesu se ne dobija izvorni kod, jer se mnoge stvari iz izvornog koda izgube nepovratno prilikom kompilacije, ali se dobija kod koji može da se kompajlira u isti binary. Svakako, ekzaktno gledano, ne možeš da izbegneš predaju koda u ovom slučaju.



offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Ne bih da klijentima šaljem exutable program jer na taj način ne mogu updatovati kod po potrebi.
Postoji li neki online server ili platforma za CGI? Tražio sam i izgleda da nema. Nemam baš vremena da se bavim time, ja bih da samo kopiram kod koji treba da se pokreće, ovaj CGI mi se čini malo komplikovanim.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14822
  • Gde živiš: Niš

A hajde objasni kako ti to zamišljaš da radi?

Ako bi da samo kopiraš kod - napiši JavaScript kod i to je to. C je ovde promašena tehnologija. Način da se to prevaziđe je opisan iznad. Možda ima i neki drugi, ali ja ne znam za njega.

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

hvala na odgovoru Smile
ja sam to zamislio ovako npr.
https://ideone.com/mZ08pF
nešto poput ovog da postavim svoj kod, i oni kojima pošaljem link mogu da ga pokrenu, samo što je ovdje problem što se kod vidi (ali hajde neka se vidi), ali drugi problem koji se javlja je prekoračenje maksimalne dozvoljene veličine fajla (moj kod je podugačak)

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Okej, ti hoćeš neki već gotov servis gde ti možeš da ubaciš kod koji će moći da izvrši neko ali da on ne vidi taj kod? Koliko znam, tako nešto ne postoji. Svi ti servisi se prave tako da omoguće ljudima da izvrše kod online, ne da dele programe.

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Čisto jedan update, linija po linija, i uspio sam prevesti ovaj C program u Javascript. Hvala puno svima na odgovorima Smile
I sad nešto razmišljam, nema možda ni smisla praviti desktop aplikacije više, to je zastarjela tehnologija. Javascript i web preuzimaju glavnu ulogu kod korisnika.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14822
  • Gde živiš: Niš

Pa recimo da je tako nekako. Čak se i mnoge desktop aplikacije kodiraju koristeći web tehnologije, pa se onda pomoću određenih alata pakuju kao desktop aplikacije. Međutim, ovde C nije zastarela tehnologija, nego je promašena tehnologija za tvoje potrebe. Smile

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

amar54k ::I sad nešto razmišljam, nema možda ni smisla praviti desktop aplikacije više, to je zastarjela tehnologija. Javascript i web preuzimaju glavnu ulogu kod korisnika.

Nažalost jeste tako. Skoro sve poznatije aplikacije su na Electron-u, a retke su one poput VS Code-a koje su dobro optimizovane. Nadam se da će Flutter zaživeti na desktopu i da će doneti neke promene sa te strane.

C nije zastareo ali jeste dosta nepraktičan za razvoj desktop aplikacija.

Ko je trenutno na forumu
 

Ukupno su 967 korisnika na forumu :: 19 registrovanih, 5 sakrivenih i 943 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amaterSRB, Bluper, darkojbn, deimos25, DPera, hologram, JimmyNapoli, kunktator, m0nstrum_, mercedesamg, Metanoja, Miškić, oldtimer, repac, royst33, vaso1, wolverined4, YugoSlav