Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Socket & Store to Database

Îåêßíçóå áðü ôï ìÝëïò Bill . Τελευταία δημοσίευση από το μέλος Bill στις 26-09-2011, 10:26. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-09-2011, 19:52 67514

    Socket & Store to Database

    Πως μπορώ να αποθηκεύω απευθείας στην βάση μου κ όχι σε ΑΡΧΕΙΟ ότι κατεβάζει το socket μου ?
    πχ τώρα έχω ένα socket το οποίο τα byte που λαμβάνει τα γράφει σε ένα αρχείο που δημιουργώ θέλω αντι για αρχείο να τα παίρνω απευθείας στην βάση μου.

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  25-09-2011, 22:22 67516 σε απάντηση της 67514

    Απ: Socket & Store to Database

    Η ερώτηση μάλλον δεν έχει να κάνει με sockets αλλά με βάσεις. Το socket και το που γράφεις τα δεδομένα που σου δίνει δεν έχουν καμμία σχέση μεταξύ τους. Όπως γράφεις σε αρχείο, το ίδιο εύκολα μπορείς να γράψεις και σε βάση δεδομένων. 

    Το .NET έχει διάφορους τρόπους να γράψεις στη βάση. Ο βασικός τρόπος είναι με τη χρήση του ADO.NET είτε για να εκτελέσεις απευθείας εντολές μέσω της DbCommand είτε προσθέτωντας γραμμές σε ένα DataTable και μετά αποθηκεύοντας το DataTable ολόκληρο στη μνήμη. Παραδείγματα χρήσης του μπορείς να βρεις στο βασικό documentation στο MSDN. Μία αναζήτηση για ADO.NET tutorial στο google θα σου επιστρέψει 

    Αλήθεια, γιατί θέλεις να χρησιμοποιήσεις sockets? Μπορείς να χρησιμοποιήσεις την κλάση HttpListener αν θέλεις να φτιάξεις κάποιο REST interface ή απλά να επεξεργαστείς απευθείας HTTP κλήσεις χωρίς τη χρήση κάποιου web server. Τα sockets χρησιμεύουν ουσιαστικά μόνο αν θέλεις να δουλέψεις απευθείας σε επίπεδο TCP ή UDP.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  25-09-2011, 23:35 67517 σε απάντηση της 67516

    Απ: Socket & Store to Database

    Οκ. Ξέρω πως να αποθηκεύσω απλά τώρα κατεβαίνουν τα αρχεία μου και μετά τα πετάω στη βάση. Εγώ θέλω καθώς κατεβαίνουν να τα πετάω απευθείας στην βάση. Τώρα ανοίγω ένα αρχείο και γράφω σε ένα αρχείο μέχρι να κατέβει και μετά το αποθηκεύω στη Βάση, πως μπορώ να το κάνω χωρίς να το αποθηκεύσω πρώτα στον δίσκο. Θέλω να δουλεψω απευθείας με TCP.


    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  25-09-2011, 23:56 67520 σε απάντηση της 67517

    Απ: Socket & Store to Database

    Τί ακριβώς θέλεις να κάνεις? Προφανώς για να αποθηκεύσεις το αρχείο στο σκληρό έχεις ήδη χρησιμοποιήσει την GetStream και διαβάζεις τα δεδομένα που σου έρχονται. Μπορείς πολύ απλά να τα μαζέψεις όλα σε ένα buffer και μετά να τα στείλεις στη βάση. Δεν σου κάνει αυτό? Θέλεις να κάνεις κάτι άλλο? 

    Αν το θέμα είναι πως να φτιάξεις το buffer, μπορείς να χρησιμοποιήσεις ένα MemoryStream για να αντιγράψεις τα δεδομένα που έρχονται από το socket σε ένα buffer που χειρίζεται η ίδια η MemoryStream. Όταν τελειώσεις, στέλνεις τα περιεχόμενα του buffer στη βάση.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  26-09-2011, 10:26 67521 σε απάντηση της 67520

    Απ: Socket & Store to Database

    Το MemoryStream ήθελα το είχα ξεχάσει εντελώς αυτό. Ναι χρησιμοποιώ την GetStream μέχρι τώρα απλά δε μου πήγε το μυαλό καθόλου στο MemoryStream ενω στο παρελθόν το είχα ξανα χρησιμοποιήσει.
    Ευχαριστώ.

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems