Προς το περιεχόμενο

Επικοινωνία C προγρ. με web server


InDiO

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά χαρά.

 

Θέλω να διαχειριστώ κάποιες πληροφορίες οι οποίες είναι διαθέσιμες μόνο από σελίδες web. Θέλω να φτιάξω ένα πρόγραμμα που να συνδέεται με τον server(όχι apache παρεπιπτόντως, ένας embedded είναι) και παίρνει συγκεκριμένες σελίδες, να τις παρσάρει και να κρατάω κάποια δεδομένα. Επίσης θα ήθελα να κάνω κάποιες εντολές post στον σερβερ, αφού "γεμίζω" κάποια πεδιά μιας φόρμας.

 

Υπάρχει κάποιος τρόπος να γίνει αυτό με "καθαρό" τρόπο; Κάποιες βιβλιοθήκες ή κάτι παρόμοιο; Μήπως η C δεν είναι το σωστό εργαλείο για την δουλειά;

Δημοσ.

Θέλω να κάνω κάτι σε κανονικό πρόγραμμα, όχι ένα script. Και πάλι βέβαια δεν ξέρω perl. Ίσως μια πιο συγκεκριμένη άποψη;

Δημοσ.

ανοιγεις ενα connection με τον SERVER , αναλογα με την γλωσσα που χρησιμοποιησεις θα ειναι λιγο πιο ευκολο η δυσκολο!

Χρησιμοποιοντας τα stream του socket αρχιζεις και γραφεις ΗΤTP eντολες και τις στελνεις στο αλλο ακρο! Απλο text ειναι

GET , POST κτλ κτλ! o server σου απανταει με αντιστοιχο text που δεν ειναι αλλο απο το response του command που περιεχει και την ΗΤΜΛ . Αυτο που εχεις να κανεις λοιπον ειναι να παρεις το inputstream του socket να το διαβασεις και να το σωσεις σε εναν buffer για να το επεξεργαστεις καλυτερα!

 

νομιζω ειναι εξαιρετικα doable!

Δημοσ.

h lysh einai sockets se syndiasmo me to http protocol.exw ftiaksei kati paromoio se C kai anagkastika na diavasw to RFC tou http protocol.

 

opote des ta parakatw:

 

http://www.ecst.csuchico.edu/~beej/guide/net/

to kalytero guide gia socket programming

 

kai

 

ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt

gia to pws doulevei to http protocol kai pws p.x. tha mporeseis na epikoinwneis me enan web server

 

afta

Δημοσ.

Τhanks παιδιά. Το tutorial του BeeJ το έχω διαβάσει ήδη φίλε μου <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />. Βασικά με ενδιαφέρει το "τι" θα στέλνω στο server, η επικοινωνία ξέρω ότι θα πάει με sockets. Απλά η σελίδα πρεπει να περιέχει και στοιχεία Javascript, πως θα τα βρω όλα αυτά; Είναι πιστεύετε λύση να σνιφφάρω τα πακέτα που περνούν κατά την σύνδεση και επικοινωνία με τον server, έτσι ώστε απλά να αντιγράψω αυτά που στέλνονται στο πρόγραμμα;

 

Κάποιος άλλος τρόπος να διαβάσω την πληροφορία που στέλνεται ωστε να μην χρειαστεί να διαβάσω RFCs;

 

Φίλε vtsib, μπορείς να μου στείλεις τον κώδικα της δουλείας σου αυτής, αν είναι opensource; Πίστεψε με δεν κάνω κάτι με εμπορικό προσανατολισμό εδώ! <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/tongue.gif" alt="" />

Δημοσ.

dystixws den to exw sto laptop mou to exw sthn athina+eimai ekswteriko.

 

den nomizw na se enoxlei to javascript h o,tidipote.

+den xreiazetai na diavaseis kai olo to RFC.

 

apla tha deis ti prepei na steileis ston server kai aftos tha sou kanei response thn html selida.to response tha to apothikefseis se ena array h arxeio h otidipote thes esy kai apo ekei kai pera teleiwse to socket.tha to epeksergasteis opws thes esy.

 

epishs diavase kai me poio tropo ginetai mia methodos post wste na mporeis na to kaneis kai mesw tou programmatos sou.efoson ksereis kai apo sockets den einai TROMERI douleia!

Δημοσ.

Θα σου πρότεινα να δείς και την λύση της PHP. Είναι σχεδιασμένη ειδικά για HTTP δουλειές και έχει σχεδόν ίδια syntax με την C.

Παράδειγμα, για να πάρω την σελίδα του site και να την βάλω σε ένα array αρκεί να γράψω:

$my_array = file('http://www.insomnia.gr');

<img src="http://www.insomnia.gr/ubbthreads/images/graemlins/wink.gif" alt="" />

Έξτρα πλεονέκτημα το απίστευτο manual που έχει στο www.php.net/manual επειδή οι χρήστες προσθέτουν σχόλια.

Δημοσ.

Το πρόγραμμα προορίζεται να έχει την μορφή deamon. Γιαύτο δεν με τρελαίνει η λύση PHP, πρέπει το script να εκτελείται μέσω crond κτλ που δεν ξέρω κατά πόσο θα βοηθούν στην ευχρηστία του. Πάντως Thanks παιδιά, θα το ψάξω και ελπίζω να το αρχίσω...

Δημοσ.

Daemon άρα να υποθεσω ότι εννοείς linux ?

Έχω μία λύση αλλά δυστυχώς δεν θα παίξει με Linux.

Πάντως μπορείς να ανοίγεις ένα Socket και να στέλνεις ένα HTTP Request και μετά να περιμένεις την απάντηση...

  • 2 εβδομάδες αργότερα...
Δημοσ.

Αν το όνομα PICDEM.net σου λέει τίποτα τότε κοίτα στο κεφάλαιο που μιλάει για EGI, embedded Gateway Interface ......ελπίζω να κατάλαβες....!

  • 3 εβδομάδες αργότερα...
Δημοσ.

Το πρόγραμμα προχωράει! :P . Η δουλειά με τα sockets για επικοινωνία με το σερβερ δεν ήταν και ότι πιο δύσκολο..

 

Αυτό που μένει κυρίως πλέον, είναι να δώσω τις σωστές http requests. Το βασικό μου πρόβλημα είναι το authentication που πρέπει να κάνω στο σερβερ, καθώς δεν μπορώ αλλιώς να κάνω τα δύο POST που θέλω. Ο σερβερ μάλλον χρησιμοποιεί όχι τον basic τρόπο auth. Υποθέτω ότι για να υλοποιήσω τον "νέο" τρόπο που ορίζεται από το http/1.1 πρέπει να βρω τον αλγόριθμο κρυπτογράφησης για να κρυπτογραφήσω user/pass και να τα περάσω στον σέρβερ με το σωστό request;

 

Ο σέρβερ μου στέλνει μια cgi φόρμα, στην οποία εγώ θέλω να ενεργοποιήσω ένα κουτάκι (αυτά με την μαύρη βούλα) και μετά να πατήσω το ΟΚ. Για να δώ τι request πρέπει να κάνω πρέπει απλά να διαβάσω την σελίδα που μου στέλνει ο server; :?:

Δημοσ.

An katalava kala o server sou stelnei mia selida me mia HTML forma mesa. H forma afth apoteleitai apo radiobuttons kai ena submit koumpi. An afth h selida einai panta standard kai 3ereis to onoma tou variable pou vrisketai krymmeno pisw apo ta radiobuttons, opws epishs kai thn timh tou radiobutton pou 8eleis na energopoihseis tote de xreiazetai na diavazeis ka8e fora thn selida. Mporeis apla na katevazeis thn selida pou vrisketai sto action tou tag form. Gia na steileis dedomena mesw POST ta stelneis sto telos tou request me thn morfh variable=value. Gia perissoteres leptomereies se afto... sto rfc ;)

 

Filika

Dionisos

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...