Prikaži potpunu verziju : Program za server
Odmah da kažem na ne znam da li ću dobro postaviti pitanje, tako da slobodno izmijenite post.
Radi se o tome ta hoću da napišem jednostavan program ali se u oblast uopšte ne razumijem: program treba da bude stalno aktivan na serveru (daemon?). Ono što mi treba jeste:
- Program koji glumi "server" na određenom portu na mom zakupljenom domenu, zatim:
- Prihvata zahtjeve klijenta i odgovara na njega (prijava klijenta, obrada zahtjeva).
Šta mi je potrebno za ovako nešto, kakva hosting usluga, poznavanje kojih jezika? Skript jezici nisu dovoljni, potreban je neki "executable" na serveru?
Svojim zahtevima si opisao Apache. E sad, što bi neko (u ovom slučaju ti) pisao program koji već postoji?
Ne, ne želim da pišem webserver od nule, niti bih znao. Konretno, želim da napišem program pomoću kojeg korisnici rade zajedno na nekom fajlu, ali da svaki korisnik dobije obavještenje da je fajl izmijenjen u trenutku kada se izmjena desi. Da li to znači da na serveru mora da bude neki program koji se aktivira kada se fajl izmijeni?
seymourc64
3.2.2008, 12:26
Imas takve programe. SVN, CVS,...
Pogledaj ovde (http://vertrigo.sourceforge.net/)
odlican server!
Ne traba mi server, već program koji radi *na* serveru i sluša upite (moje) klijentske aplikacije. Šta mi treba za to: dedicated server, static ip...?
mr.marvin
19.6.2008, 12:04
Update posta da malo pojasnim ;)
Napisao sam aplikaciju u Pythonu koja se može pokrenuti na mom zakupljenom serveru. Ulogujem se preko SSH i pokrem kao na računaru. Na primjer "python program.py -P 2222". Međutim, shvatam da ovo nema smisla, jer je taj port nedostupan za "client's request", a program prestaje sa radom čim zatvorim konzolu.
Zanima ma šta je potrebno uraditi da je napisani program stalno dostupan na adresi www.mojsajt.com:2222 ili cak nekog poddomena (service.mojsajt.com)? Neka podsesavanja u Apache?
Update posta da malo pojasnim ;)
Napisao sam aplikaciju u Pythonu koja se može pokrenuti na mom zakupljenom serveru. Ulogujem se preko SSH i pokrem kao na računaru. Na primjer "python program.py -P 2222". Međutim, shvatam da ovo nema smisla, jer je taj port nedostupan za "client's request", a program prestaje sa radom čim zatvorim konzolu.
Zanima ma šta je potrebno uraditi da je napisani program stalno dostupan na adresi www.mojsajt.com:2222 (http://www.mojsajt.com:2222) ili cak nekog poddomena (service.mojsajt.com)? Neka podsesavanja u Apache?
Ovo je i dalje prilicno nejasno.
To sto program prestaje sa radom cim zatvoris konzolu je normalno.
u *nix based sistemima svaka aplikacija koju pokrenes spawnuje za sebe poseban shell, koji je child shella iz kog je pokrenuta.
Da bi poslao nesto u pozadinu (aka, pustio da neograniceno radi), moras da odvojis dete od roditelja, iliti demonizujes proces tog tvog netserva u pythonu.
Python ako se dobro secam ima modul, daemon, koji vrlo lako mozes da upotrebis.
na pocetku tvog programcica uradis:
import daemon
daemon.daemonize()
i on ti fino isforkuje programce, dodeli mu sopstveni sid itd.
anyhow, kad ti pokrenes to tvoje programce kako ga pokrenes, pretpostavljam da radi sa tcp protokolom, na njega mozes da se konektujes sa netcatom, ili telnetom u windowsu:
nc -v -n tvoj_ip port
telnet tvoj_ip port
i on ce raditi to sto radi, e sad, ti si izrazio zelju da iz browsera pristupis tom portu.
sto bi znacilo da taj serv mora da radi sa http paketima etc. aka, da bude webserv :/
don't get it.
Problem je što nikad nisam radio sa ovim pa ne umijem precizno da se izrazim. Evo primjer, pa neka neko prokomentariše kako je to izvodljivo običnim korisnicima (koji nemaju vlastiti server):
1. Server: sluša na portu app.mojsajt.com:5555
2. Klijent1 i Klijent2 se povezuju na Server.
3. Klijent1 vrši izmjenu u bazi podataka, i čim se izmjena sačuva, Server javlja Klijentu2 podatke o izmjeni.
Moj osnovni problem je kako da server "sam od sebe" javi nešto klijentu (bilo da je browser ili posebna aplikacija).
@b0xd
Hvala mnogo, nisam znao ovo za daemon.
Sad mi pade na pamet neka kul ideja.
Uslov je da imas svoj serv:)
Instaliras apachi na drugom portu.
Ili ako hoces i web servis standardan na 80, dva apachija, jedan na default portu, drugi stavis da ti radi na, lupam, 666.
I onda na tom drugom, pises sve zivo, u cemu god hoces...
Sredis mu vdomains, instaliras mod_php/pl sta god, i pristupas http://moj.domen.com:666
Tako ti je recimo webmin uradjen, verovatno si cuo za njega, ako ne guuugliraj :)
Webmin je skup skriptica napisanih u perlu, ceo webserv njegov je u perlu, i on radi na portu 10k.
------
Ima jos *gora* ideja od te:love:
Ako te mrzi da pises web serv, napises u nekom skripting jeziku obican, po mogucnosti forking sock serv, koji radi redirekciju http zahteva tvom nekom apachi modulu
Pa onda taj tvoj prosledi apachiju, saceka res, vrati ti i tako, sad vec kenj*mo. al ajd :)
Ima dosta resenja:qliranje:
mr.marvin
20.7.2008, 23:59
Uh uh. Da imam svoj server... :D
Razmišljao sam o dva rješenja:
A) Napisati aplikaciju koja ce biti pokrenuta na serveru na portu xxxx, i zamoliti administraciju da mi dopusti korišćenje xxxx porta. Malo vjerovatno da mi dozvole.
B) Koristiti AJAX + program koji dovlači traženu, posebno formatiranu, stranicu sa servera. Nije to to, ali bolje išta nego ništa.
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc.