C İle Soket Programlama
-
arkadaşlar c ile bir web projesi geliştirmekteyim yapmak istediğim şey dahili httpd yapmak statik dosyaları okumayacağım sadece localhost:8085 dediğimiz 8085 portu üzerinden gelen istekleri okumak istiyorum okumak istediğim istekler GET,POST istekleri gelen veriye göre işlem yaptırmak istiyorum bu kadar gerisini önüne koyacağım nginx halleder zaten bunun mantığı nedir nasıl yapılır bana bu konuda yardımcı olursanız sevinirim arkadaşlar
-
Hocam hazır bir http server kütüphanesi bulsan iyi edersin.
Azmedip kendin de yapabilirsin ama çok zamanda az iş yaparsın ve http serverların istekleri file systeme map ediyorsa birçok güvenlik checki olmalı onda örneğin ../../ diye yukarı çıkar adam yada %2e%2e/ diye üst klasorden dosya okuma olaylarını kontrol etmen lazım. headerı, cookieyi şişirmenin önüne geçmen lazım fln.
-
x HolyOne bunu yazdı
Hocam hazır bir http server kütüphanesi bulsan iyi edersin.
Azmedip kendin de yapabilirsin ama çok zamanda az iş yaparsın ve http serverların istekleri file systeme map ediyorsa birçok güvenlik checki olmalı onda örneğin ../../ diye yukarı çıkar adam yada %2e%2e/ diye üst klasorden dosya okuma olaylarını kontrol etmen lazım. headerı, cookieyi şişirmenin önüne geçmen lazım fln.
teşekkür ederim ancak hazır kütüphane bulamadım yada ben bulamadım sanırım doğrumu araştırmadım bilmiyorum en azından güzel bir hazır kütüphane bulmam konusunda yardımcı olabilirmisiniz.
-
-
takipteyim detaylarını öğrenmek isterim
-
x netwalker bunu yazdıx HolyOne bunu yazdı
Hocam hazır bir http server kütüphanesi bulsan iyi edersin.
Azmedip kendin de yapabilirsin ama çok zamanda az iş yaparsın ve http serverların istekleri file systeme map ediyorsa birçok güvenlik checki olmalı onda örneğin ../../ diye yukarı çıkar adam yada %2e%2e/ diye üst klasorden dosya okuma olaylarını kontrol etmen lazım. headerı, cookieyi şişirmenin önüne geçmen lazım fln.
teşekkür ederim ancak hazır kütüphane bulamadım yada ben bulamadım sanırım doğrumu araştırmadım bilmiyorum en azından güzel bir hazır kütüphane bulmam konusunda yardımcı olabilirmisiniz.
http://stackoverflow.com/questions/176409/how-to-build-a-simple-http-server-in-c
http://tinyhttpd.sourceforge.net/
http://www.paulgriffiths.net/program/c/webserv.php
http://www.paulgriffiths.net/program/c/srcs/webservsrc.html
-
http://www.paulgriffiths.net/program/c/webserv.php
bu adresteki örneği test ettim çalıştı gayet basit mantıkla 8080 portunu ancak verilen klasör yolundaki html dosyalarını okuyor bense
atıyorum c dosyası içinde mysql ile verileri listeledim sonra binary dosyasını çalıştırıp localhost:8080 dediğimde dataları web browser a bassın istiyorum
netwalker tarafından 19/Ağu/13 21:55 tarihinde düzenlenmiştir -
x netwalker bunu yazdı
http://www.paulgriffiths.net/program/c/webserv.php
bu adresteki örneği test ettim çalıştı gayet basit mantıkla 8080 portunu ancak verilen klasör yolundaki html dosyalarını okuyor bense
atıyorum c dosyası içinde mysql ile verileri listeledim sonra binary dosyasını çalıştırıp localhost:8080 dediğimde dataları web browser a bassın istiyorum
Aga şimdi sana kod yazmam saçmalık olur. Sadece mantık söyleyeyim. MYSQL, C ile bağlanıp verileri html formatında hdd e kaydedip ohtml dosyasını okutturabilirsin. BU yöntemle neredeyse kodda hiç desğişiklik yapmazsın.
-
x DrKill bunu yazdıx netwalker bunu yazdı
http://www.paulgriffiths.net/program/c/webserv.php
bu adresteki örneği test ettim çalıştı gayet basit mantıkla 8080 portunu ancak verilen klasör yolundaki html dosyalarını okuyor bense
atıyorum c dosyası içinde mysql ile verileri listeledim sonra binary dosyasını çalıştırıp localhost:8080 dediğimde dataları web browser a bassın istiyorum
Aga şimdi sana kod yazmam saçmalık olur. Sadece mantık söyleyeyim. MYSQL, C ile bağlanıp verileri html formatında hdd e kaydedip ohtml dosyasını okutturabilirsin. BU yöntemle neredeyse kodda hiç desğişiklik yapmazsın.
dediğiniz olmaz ki sistemi yorar cache lemek gibi bir şey sdece dataları çekmek değil ki olacak html formundan data girdiği zaman kayıt eklemek yani c ile web sitesi yapmak kısacası ancak önünde nginx olacak örnek /listpage yazınca bende c ile okucam /network adresine girildiğinde şu dataları bas o anda mysql den çeker verileri /listadd yazınca önüne form gelecek dolduracak veriyi ekleyecek tek şey dataları browserın yada nginx okuyacağı şekilde c den cevaplamak nasıl olur.
ayrıca ufak bir sorum olacak belki bilginiz vardır yaptığım uygulama saniyede kaç sorguya cevap veriyor ne kadar dayanıyor sonra çöküyor onun testini yapmak için iss dışında bir program öneriniz var mı acaba ?
-
x netwalker bunu yazdıx DrKill bunu yazdıx netwalker bunu yazdı
http://www.paulgriffiths.net/program/c/webserv.php
bu adresteki örneği test ettim çalıştı gayet basit mantıkla 8080 portunu ancak verilen klasör yolundaki html dosyalarını okuyor bense
atıyorum c dosyası içinde mysql ile verileri listeledim sonra binary dosyasını çalıştırıp localhost:8080 dediğimde dataları web browser a bassın istiyorum
Aga şimdi sana kod yazmam saçmalık olur. Sadece mantık söyleyeyim. MYSQL, C ile bağlanıp verileri html formatında hdd e kaydedip ohtml dosyasını okutturabilirsin. BU yöntemle neredeyse kodda hiç desğişiklik yapmazsın.
dediğiniz olmaz ki sistemi yorar cache lemek gibi bir şey sdece dataları çekmek değil ki olacak html formundan data girdiği zaman kayıt eklemek yani c ile web sitesi yapmak kısacası ancak önünde nginx olacak örnek /listpage yazınca bende c ile okucam /network adresine girildiğinde şu dataları bas o anda mysql den çeker verileri /listadd yazınca önüne form gelecek dolduracak veriyi ekleyecek tek şey dataları browserın yada nginx okuyacağı şekilde c den cevaplamak nasıl olur.
ayrıca ufak bir sorum olacak belki bilginiz vardır yaptığım uygulama saniyede kaç sorguya cevap veriyor ne kadar dayanıyor sonra çöküyor onun testini yapmak için iss dışında bir program öneriniz var mı acaba ?
O zaman kodlarda değişiklik yapman lazım hocam. Ben sana örneği kodlarda değişiklikler yapmaman için söyledim. Kodlarda, klasördeki htmlleri client'lere göndermesi yerine belleketeki veriyi direk göndermen lazım. HDD I/O dan kurtulursun çok kolay.
Test için linux'un bazı komutları var araştırman lazım.
-
x DrKill bunu yazdıx netwalker bunu yazdıx DrKill bunu yazdıx netwalker bunu yazdı
http://www.paulgriffiths.net/program/c/webserv.php
bu adresteki örneği test ettim çalıştı gayet basit mantıkla 8080 portunu ancak verilen klasör yolundaki html dosyalarını okuyor bense
atıyorum c dosyası içinde mysql ile verileri listeledim sonra binary dosyasını çalıştırıp localhost:8080 dediğimde dataları web browser a bassın istiyorum
Aga şimdi sana kod yazmam saçmalık olur. Sadece mantık söyleyeyim. MYSQL, C ile bağlanıp verileri html formatında hdd e kaydedip ohtml dosyasını okutturabilirsin. BU yöntemle neredeyse kodda hiç desğişiklik yapmazsın.
dediğiniz olmaz ki sistemi yorar cache lemek gibi bir şey sdece dataları çekmek değil ki olacak html formundan data girdiği zaman kayıt eklemek yani c ile web sitesi yapmak kısacası ancak önünde nginx olacak örnek /listpage yazınca bende c ile okucam /network adresine girildiğinde şu dataları bas o anda mysql den çeker verileri /listadd yazınca önüne form gelecek dolduracak veriyi ekleyecek tek şey dataları browserın yada nginx okuyacağı şekilde c den cevaplamak nasıl olur.
ayrıca ufak bir sorum olacak belki bilginiz vardır yaptığım uygulama saniyede kaç sorguya cevap veriyor ne kadar dayanıyor sonra çöküyor onun testini yapmak için iss dışında bir program öneriniz var mı acaba ?
O zaman kodlarda değişiklik yapman lazım hocam. Ben sana örneği kodlarda değişiklikler yapmaman için söyledim. Kodlarda, klasördeki htmlleri client'lere göndermesi yerine belleketeki veriyi direk göndermen lazım. HDD I/O dan kurtulursun çok kolay.
Test için linux'un bazı komutları var araştırman lazım.
teşekkür ederim c ile yeni yeni uğraşıyorum bahsettiğiniz olayla ilgili ufak bir örnek yapabilmeniz münkün mü yada kodlarda ki değişiklikleri yapabilmeniz yardımcı olursanız çok sevinirim ne yaptığınızı kodlarla gördüğüm zaman daha rahat anlayabilirim.