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

 

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

Δημιουργία client/server communication με winsock

Îåêßíçóå áðü ôï ìÝëïò VirusX2. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 28-12-2006, 14:41. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-12-2006, 10:05 22817

    Δημιουργία client/server communication με winsock

    Γειά σας,

    θα ήθελα τη βοήθεια σας σχετικά με με μία εφαρμογή που θέλω να δημιουργήσω. Θέλω να μου δήξετε πως μπορώ να κανω τον client να εποικινωνισει με τον server μεσω winsock. εχω κανει πολλες αποπιρεσ αλλα....τπτ

    Αν γινετε θα ηθελα το παραδειγμα να ειναι σε Visual BAsic 2005

    Ευχαριστω
    Powered by OpenBSD, MySQL, PHP. Featuring MS VS2005, MSSQL Server, MS Windows Vista & Exchange Server 2007. Used by Xtended.
  •  27-12-2006, 10:27 22819 σε απάντηση της 22817

    Απ: Δημιουργία client/server communication με winsock

    Αυτό που ίσως ζητάς ονομάζεται Remoting και μπορείς να βρείς παραδείγματα εδώ και εδώ  .
    Καί ένα overview του εδώ

    Κύταξε τα παραδείγματα και αν δεν σε καλύπτουν εδώ είμαστε .


  •  27-12-2006, 11:02 22820 σε απάντηση της 22817

    Απ: Δημιουργία client/server communication με winsock

    Δεν καταλαβα και πολλα. Αθτο που θέλω εινε να μπορει ο client να επικινονισει με τον server. Να τρεξει μια εφαρμογη στο απομακρισμενο υπολογιστη για παραδειγμα.


    Powered by OpenBSD, MySQL, PHP. Featuring MS VS2005, MSSQL Server, MS Windows Vista & Exchange Server 2007. Used by Xtended.
  •  27-12-2006, 11:16 22823 σε απάντηση της 22820

    Απ: Δημιουργία client/server communication με winsock

     VirusX2 wrote:
    Δεν καταλαβα και πολλα. Αθτο που θέλω εινε να μπορει ο client να επικινονισει με τον server. Να τρεξει μια εφαρμογη στο απομακρισμενο υπολογιστη για παραδειγμα.

    Αυτό που περιγράφεις είναι πολύ γενικό. Υπάρχουν πολλές μέθοδοι για να εκτελέσεις κώδικα σε ένα remote μηχάνημα. Τι ακριβώς έχεις στο μυαλό σου; Έχεις κάποιο παράδειγμα/πρόγραμμα που δουλεύει με τον τρόπο που θέλεις, να μας το περιγράψεις για να καταλάβουμε τι θέλεις να κάνεις;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  27-12-2006, 14:57 22830 σε απάντηση της 22817

    Απ: Δημιουργία client/server communication με winsock

    λοιπον, βαζω reference to αρχείο winsock_control.dll και μετά γραφω

    friend withevents client as new winsock_control.winsock

    μετα στο form_load γραφω

    client.connect("
    client.send(msgbox("message"))

    αλλα το μηνυμα εμφανιζετε στο δικο μου pc και οχι στο remote...

    στο remote pc τρεχει το αλλο μερος τισ εφαρμογης που εχει στο from_load:

    client.localport=

    client.listening

    τι κανο λαθος?
    Powered by OpenBSD, MySQL, PHP. Featuring MS VS2005, MSSQL Server, MS Windows Vista & Exchange Server 2007. Used by Xtended.
  •  27-12-2006, 17:36 22842 σε απάντηση της 22830

    Απ: Δημιουργία client/server communication με winsock

    Αν κατάλαβα καλά .. θες να φτιάξεις ένα remote desktop ... χωρίς το user interface ???

    Κάτι τέτοιο είναι πολύ πολύ πολύ δύσκολο και το winsock δεν είναι η λύση σου μάλλον. Σε περίπτωση που όμως θες κάτι πιο απλό, όπως π.χ. να μεταφέρεις string/binary μηνύματα πέρα δώθε, τότε ναι, τα sockets θα βοηθήσουν.

    Τι "προϋπηρεσία" έχεις σε network programming ? Νομίζω οτι πρέπει να κάνεις ένα μικρό διάβασμα στο τι είναι socket, connection σε remote pc, κτλ κτλ. για να καταλάβεις τις δυνατότητες της πλατφόρμας ( το ότι ας πούμε δε χρειάζεται να κάνεις mport το wisock control για να έχεις υποστήριξη για networking στο .NET ), και τί ακριβώς σου δίνει αυτή ως λειτουργικότητα ( το ότι οτιδήποτε γράφεις μέσα σε ένα .send(...) method δεν εκτελείται στο server ας πούμε )

    Δεν μας γράφεις πιο αναλυτικά τι ακριβώς είναι αυτό που θες να κάνεις ;
    Angel
    O:]
  •  27-12-2006, 18:12 22843 σε απάντηση της 22817

    Απ: Δημιουργία client/server communication με winsock

    δεν εχω ξανακανει network programming. μπορεις να μου προτεινεις καπια e-books??
    Powered by OpenBSD, MySQL, PHP. Featuring MS VS2005, MSSQL Server, MS Windows Vista & Exchange Server 2007. Used by Xtended.
  •  28-12-2006, 14:41 22867 σε απάντηση της 22843

    Απ: Δημιουργία client/server communication με winsock

    To network programming δεν είναι κάτι απλό - το πάραδειγμα που έδωσες ουσιαστικά περιγράφει τον τρόπο που προσπαθείς να υλοποιήσεις εσύ την λύση του προβλήματος. Καταλαβαίνεις, ότι όταν δεν ξέρουμε το πρόβλημα δεν μπορούμε να σου δώσουμε την καλύτερη λύση.

    Παρόλα αυτά, πρώτα πρέπει να κατανοήσεις τον τρόπο που δουλεύει μια TCP επικοινωνία, για να μπορέσεις να το κάνεις την υλοποίηση:

    • Ο server κάνει listen σε κάποιο συγκεκριμένο port - πρέπει να έχει καθοριστεί ο αριθμός του port.
    • Ο client μπορεί να κάνει request στον server για να συνδεθεί στο συγκεκριμένο port - πρέπει να ξέρει την διεύθυνση του server και το port που θέλει να συνδεθεί.
    • Ο server έχει τις εξής επιλογές εκείνη την στιγμή:
      • να ανοίξει την επικοινωνία στο ίδιο port που κάνει listen για να λάβει δεδομένα,
      • να ανοίξει ένα άλλο νέο port, να προωθήσει το request στο νέο port και να ανοίξει την επικοινωνία στο νέο port,
      • να απορρίψει το request και να μην έχουμε ποτέ επικοινωνία
    • Αν υποθέσουμε ότι ο server ανοίξει ένα port, τότε δέχεται τα δεδομένα που στέλνει ο client.
    • Ο αριθμός των read των δεδομένων που φτάνουν στο port του server, μπορεί να είναι παραπάνω από 1 - μπορεί να χρειαστεί να γίνουν πολλαπλά reads για να διαβαστούν τα δεδομένα που θα φτάσουν - το μέγεθος των δεδομένων που φτάνουν στο port, εξαρτάται από το MTU του δικτύου, συνήθως 1500 ή μικρότερο αν μιλάμε για Ethernet δίκτυα που παίζουν μέ NAT ή VPN και ακόμη μικρότερο, γύρω στα 500 αν δεν κάνω λάθος, για δίκτυα πάνω από τηλέφωνο.
    • Αφού ο server, λάβει όλα τα δεδομένα - συνήθως το καταλαβαίνει από κάποια ακολουθία χαρακτήρων/bytes στα δεδομένα που φτάνουν - τα επεξεργάζεται και στέλνει την απάντησή του από το port που έχει κάνει την λήψη των δεδομένων.
    • Κανονικά σε μια TCP διαδικασία, αφού θα έκλεινε μια ακολουθία αποστολής/απάντησης, ο server θα κλείσει αυτόματα το port που άκουσε/απάντησε.
    • Ο client όταν καταλάβει ότι ο server του έκλεισε το port θα κλείσει και αυτός το δικό του, και τότε η επικοινωνία έχει τελιώσει

    Φαντάζομαι, ότι καταλαβαίνεις ότι να ζητάς να υλοποιήσεις κάτι τέτοιο δεν είναι απλό, του στυλ άνοιξε/διάβασε/απάντησε/κλείσε.

    Παραδείγματα των παραπάνω μπορείς να βρεις στο MSDN, για το server κομμάτι στο TcpListener Class, ενώ για το client κομμάτι στο TcpClient Class.

    Αν θέλεις να φτιάξεις κάτι που θα έχει αξιόπιστη επικοινωνία, καλύτερα να χρησιμοποιήσεις ένα application protocol - το http για παράδειγμα και ένα webservice - που λύνει από μόνο του το πρόβλημα της υλοποίησης της TCP επικοινωνίας. Έτσι εσύ θα μπορείς να ασχοληθείς με τα δεδομένα που λαμβάνονται, πως θα επεξεργαστούν, και τι θα περιέχει η απάντηση του server.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems