bubblegum Δημοσ. 19 Δεκεμβρίου 2013 Δημοσ. 19 Δεκεμβρίου 2013 Γεια σε όλους, φτιάχνω έναν c-based web server τύπου cilent/server και αντιμετωπίζω πρόβλημα στο κομμάτι του μηνύματος απόκρισης: http request. Συνδέω, δηλαδή, τον server με κάποιον browser και περιμένω ένα μήνυμα όπως αυτό εδώ ---> http://www.codeguru.com/cpp/i-n/internet/http/article.php/c8813/HTTP-Post-Using-C.htm αν κι εγώ ψάχνω την get method κι ύστερα την post. Αν κάποιος μπορεί να με βοηθήσει και να μου δείξει με ποιον τρόπο γίνεται αυτό ώστε να ξεκολλήσω είτε με κάποια πληροφορία, δείγμα κώδικα είτε με οτιδήποτε, ας το παραθέσει. Θενκ γιού.
παπι Δημοσ. 20 Δεκεμβρίου 2013 Δημοσ. 20 Δεκεμβρίου 2013 Που δυσκολευεσαι; Το να φτιαξειςεναν βασικο webserver σε c ειναι αρκετα ευκολο. Αρκει να ξερεις socket και string "management". Η διαδικασια ειναι: Ο browser στελνει στο server ενα get request και περιμενει απαντηση GET / HTTP/1.1\r\n Some headers.. Ο server (εσυ) επεξεργαζεσαι το πανω και απαντας πχ HTTP/1.1 200 OK\r\n Some headers\r\n \r\n αυτα που θελεις να δει ο browser Αυτα. ΥΓ: Το νου σου, οι browser στελνουν 2 request στην αρχη. Το πρωτο ειναι για favicon. Εαν το get ειναι GET /favicon.ico τοτε στειλε πισω 404 1
bubblegum Δημοσ. 25 Δεκεμβρίου 2013 Μέλος Δημοσ. 25 Δεκεμβρίου 2013 νομίζω τα κατάφερα, όμως δεν καταλαβαίνω γιατί δεν εμφανίζονται στο Request κάποια headers που θέλω, όπως για παράδειγμα το Keep-Alive, ή Referer ή το Accept-Charset.
παπι Δημοσ. 25 Δεκεμβρίου 2013 Δημοσ. 25 Δεκεμβρίου 2013 Τι να σου πω, εμενα αυτα στελνει ο χρομ Your environment has been set up for using Node.js 0.10.10 (ia32) and npm. C:\Users\papi>node documents\js\me / { host: '127.0.0.1:8050', connection: 'keep-alive', 'cache-control': 'max-age=0', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*; q=0.8', 'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Ge cko) Chrome/31.0.1650.63 Safari/537.36', 'accept-encoding': 'gzip,deflate,sdch', 'accept-language': 'el-GR,el;q=0.8,en;q=0.6' } /favicon.ico { host: '127.0.0.1:8050', connection: 'keep-alive', accept: '*/*', 'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Ge cko) Chrome/31.0.1650.63 Safari/537.36', 'accept-encoding': 'gzip,deflate,sdch', 'accept-language': 'el-GR,el;q=0.8,en;q=0.6' }
bubblegum Δημοσ. 25 Δεκεμβρίου 2013 Μέλος Δημοσ. 25 Δεκεμβρίου 2013 (επεξεργασμένο) κι εμένα, οπότε το αφήνω. το favicon.ico δεν το στέλνει καν ωστόσο γιατί το έχω ρυθμίσει στον Firefox οπότε δεν με ενδιαφέρει ιδιαίτερα. Επεξ/σία 25 Δεκεμβρίου 2013 από bubblegum
bubblegum Δημοσ. 27 Δεκεμβρίου 2013 Μέλος Δημοσ. 27 Δεκεμβρίου 2013 Τώρα, επειδή θέλω να φτιάξω ένα pattern που να δουλεύει όπως η εντολή find (linux), χρειάζομαι την POST. Κάποια υπόδειξη;
παπι Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 Η POST ειναι GET με δεδομενα κατω απο τους headers. Κατεβασε αυτο εδω να δει πως ειναι τα πακετα. http://www.wireshark.org/
dark knight Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 από ότι φαίνεται bubblegum κάνουμε την ίδια εργασία ;P απλά προσθέτεις "<form method=\"POST\">Find pattern <input type=\"text\" name=\"pattern\" value=\"\" /><input type=\"submit\" value=\"Find\"/><input type=\"reset\" value=\"Clear\"/></form>" στην αρχή του html κώδικα σου και ότι γράφουν πάνω στην μπάρα του search σου έρχεται σαν POST request. Γνωρίζει κανείς πως να κάνω την usr/bin/find να γράφει σε δικό μου buffer η file;
bubblegum Δημοσ. 27 Δεκεμβρίου 2013 Μέλος Δημοσ. 27 Δεκεμβρίου 2013 (επεξεργασμένο) ναι, το είχα κάνει αλλά δεν είχα προσέξει το terminal lol μέσω pipe θα το κάνεις αυτό με τη find, δες και τις σημειώσεις φροντιστηρίου αν δεν τις έχεις ήδη δει πφ... εγώ έχω τώρα πρόβλημα στη προσπέλαση των subdirectories. Δεν μπορώ να τα προσπελάσω καθόλου, κάτι παίζει με το path. γνωρίζει κανείς πως μπορώ να αντικαταστήσω/μετατρέψω αυτές τις εντολές μπας και εμφανιστεί σωστά το path(βρίσκω το path με αυτό τον τρόπο) char path[BUFFER_SIZE]; sscanf(reqbuff, "GET %s HTTP", path); printf("Request: \"%s\"\n", path); if((dir = opendir(path)) == NULL){ ... για να προσπελαύνω τα subdirectories; Τις εντολές τις έχω μέσα σε συνάρτηση-όρισμα της pthread_create(), δηλαδή εκτός main επομένως υποθέτω πως το argv[1] δεν μπορώ να το χρησιμοποιήσω(?)... υγ.επίσης δεν τα εκτυπώνει όλα τα directories όπως πρέπει υγ.2 ενώ στον Chrome μου εμφανίζεται μια χαρά ο πίνακας με τις στήλες κλπ, στον φάιρφοξ μου εμφανίζεται η φόρμα html, όλο μεταφρασμένο σε html... wtf? Επεξ/σία 28 Δεκεμβρίου 2013 από bubblegum
παπι Δημοσ. 28 Δεκεμβρίου 2013 Δημοσ. 28 Δεκεμβρίου 2013 Welcome στο "δεν υπαρχει crossplatform". Τι θα εκανα εγω; (Μακαρονια) θα εβαζα σε καθε φακελο ενα αρχειο με ονομα... ξερωγω "folder.list"... και εκει (μεσα στο αρχειο) θα εγραφα το τι εχει ο καθε φακελος. ετσι εαν ηθελα να δω τι εχει το /bar/foo/ θα ανοιγα το /bar/foo/folder.list το οποιο θα ειχε μεσα ξερωγω.. bar1 floder2 index.html bar.html
Timonkaipumpa Δημοσ. 28 Δεκεμβρίου 2013 Δημοσ. 28 Δεκεμβρίου 2013 Ή μπορεί απλά να προσανατολιστεί σε UNIX based OSs και να χρησιμοποιήσει standard shell commands με την system (π.χ. και πολύ απλά).
παπι Δημοσ. 28 Δεκεμβρίου 2013 Δημοσ. 28 Δεκεμβρίου 2013 υγ.2 ενώ στον Chrome μου εμφανίζεται μια χαρά ο πίνακας με τις στήλες κλπ, στον φάιρφοξ μου εμφανίζεται η φόρμα html, όλο μεταφρασμένο σε html... wtf? Εβαλες το content-type: text/html (google it καλυτερα, γιατι δεν θυμαμαι πως ακριβως ειναι)
bubblegum Δημοσ. 28 Δεκεμβρίου 2013 Μέλος Δημοσ. 28 Δεκεμβρίου 2013 (επεξεργασμένο) δεν έκανα τίποτα από τα δυο (είχα κάνει βλακεία δικιά μου) αλλά το έφτιαξα αυτό με τα directories, τα εκτυπώνει μια χαρά. Τα subdirectories πάλι @@ ...καμμιά ιδέα για το path υπάρχει μπας και τα εμφανίσει τα διαολεμένα; ή ήταν κάτι από τα παραπάνω κι απλά δεν το κατάλαβα; μισώ τη ζωή μου EDIT: Το πρόβλημα με τα subdirectories λύθηκε (περίπου), εκτός από εκείνα για τα οποία δεν έχω άδεια ή κάτι αντίστοιχο, στα οποία κολλάει. Αν υπάρχει κάποια σκέψη για αυτό, γιατί εγώ ακόμα δε βρήκα κάτι. EDIT 2: Η απορία με τους browser λύθηκε επίσης, από το forum της σχολής. Χρειαζόταν η αρχή φόρμας με το εξής: "HTTP/1.1 200 OK\r\n\r\n<html>..." EDIT 3: Λύθηκε κι η απορία με το path... οι παραπάνω τύποι δουλεύουν μια χαρά για την εύρεσή του για όποιον ενδιαφέρεται, αλλού ήταν το πρόβλημά μου. ---> Άρα επαναδιατυπώνω, το μόνο πρόβλημα εντοπίζεται για error της opendir που μπορεί να έχουμε μη προσπελάσιμα αρχεία κλπ. Anyway, θα το βρω, στον κώδικα της html είναι το πρόβλημα. Επεξ/σία 28 Δεκεμβρίου 2013 από bubblegum
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα