ntaryl Δημοσ. 11 Ιανουαρίου 2010 Δημοσ. 11 Ιανουαρίου 2010 Καλησπερα Το συγκεκριμενο Θεμα δημιουργηθηκε ετσι ωστε να εξηγησει τι σημαινει η ενοια αυτη. Πριν μερικες μερες ειχα μια μικρη συζητηση περι συνδεσεων (Client-Server).Οταν ανεφερα την ενοια αυτη αρχισε να με ρωταει τι σημαινει κτλπ. Λιγο πολλοι ολοι ξερουμε και εχουμε δει πως υλοποιειται μια συνδεση μεταξυ ενος Client-Server.Αποτελειται απο ενα προγραμμα(Client) και ενα δευτερο(Server).H επικοινωνια βασιζεται σε Sockets. 1) Direct connection O Server ανοιγει ενα port και περιμενει συνδεσεις .Ο Client απλα συνδεεται στην διευ8υνση του Server και στο port που εχει ανοιξει πιο πριν .. 2) Reverse connection Στην περιτωση μας γινεται ακριβως το αντιθετο .Ο Client ανοιγει ενα port και περιμενει συνδεσεις . O Server συνδεεται στην διευθυνση του client και στο port που ειχε ανοιξει νωριτερα Στο συγκεκριμενο παραδειγμα θα χρησιμοποιησουμε το (Mswinsck.ocx) Νομιζω οτι ο κωδικας ειναι αρκετα κατατοπιστικος . Προσπαθησα να τον απλοποιησω οσο περισοτερο μπορουσα . καλο απογευμα reverse how to.zip
datanet Δημοσ. 12 Ιανουαρίου 2010 Δημοσ. 12 Ιανουαρίου 2010 Καλησπερα Το συγκεκριμενο Θεμα δημιουργηθηκε ετσι ωστε να εξηγησει τι σημαινει η ενοια αυτη. Πριν μερικες μερες ειχα μια μικρη συζητηση περι συνδεσεων (Client-Server).Οταν ανεφερα την ενοια αυτη αρχισε να με ρωταει τι σημαινει κτλπ. Λιγο πολλοι ολοι ξερουμε και εχουμε δει πως υλοποιειται μια συνδεση μεταξυ ενος Client-Server.Αποτελειται απο ενα προγραμμα(Client) και ενα δευτερο(Server).H επικοινωνια βασιζεται σε Sockets. 1) Direct connection O Server ανοιγει ενα port και περιμενει συνδεσεις .Ο Client απλα συνδεεται στην διευ8υνση του Server και στο port που εχει ανοιξει πιο πριν .. 2) Reverse connection Στην περιτωση μας γινεται ακριβως το αντιθετο .Ο Client ανοιγει ενα port και περιμενει συνδεσεις . O Server συνδεεται στην διευθυνση του client και στο port που ειχε ανοιξει νωριτερα Στο συγκεκριμενο παραδειγμα θα χρησιμοποιησουμε το (Mswinsck.ocx) Νομιζω οτι ο κωδικας ειναι αρκετα κατατοπιστικος . Προσπαθησα να τον απλοποιησω οσο περισοτερο μπορουσα . καλο απογευμα Αυτη τη στιγμη, εχεις κανει το ιδιο, απλα βαφτησες τον client -> server, και τον server -> client. Οποιος ανοιγει θυρα ειναι σερβερ!τελος!
ntaryl Δημοσ. 12 Ιανουαρίου 2010 Μέλος Δημοσ. 12 Ιανουαρίου 2010 Νομιζα το ακριβως αντιθετο καλο απογευμα
StavrosD Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Ο server δεν μπορεί να ανοίξει connection στον client. Αν υπάρχει δυνατότητα να ανοίγουν και οι δύο υπολογιστές συνδέσεις ο ένας προς τον άλλον, τότε λέγεται Peer 2 peer.
ntaryl Δημοσ. 14 Ιανουαρίου 2010 Μέλος Δημοσ. 14 Ιανουαρίου 2010 Απλα με αυτον τον τροπο μπορεις να συνδεθεις ενω εισαι πισω απο ενα firewall ,τοπικο δικτυο . Μας δινει μεγαλη ευελιξια
StavrosD Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 Το μόνο που μπορείς να κάνεις για το θέμα του Firewall, είναι να ανοίξει ο client την σύνδεση προς τον server, να έχεις βάλει μεγάλο timeout και να κάνεις ένα ping έστω κάθε τόσο για να μην πέσει η σύνδεση. Αυτό όμως επιβαρύνει τον server. Τα windows έχουν όριο τα 10 ανοιχτά connections, τα οποία μπορείς να τα ανεβάσεις αλλά όχι και πολύ. Χώρια που δεσμεύονται πόροι στον server για κάθε connection.
ntaryl Δημοσ. 14 Ιανουαρίου 2010 Μέλος Δημοσ. 14 Ιανουαρίου 2010 Φιλε μου πολυ σωστα ο client συνδεεται πανω στον Server το Firewall δεν επιτρεπει εισερχομενες συνδεσεις αλλα μονο εξερχομενες .Αρα ο Client συνδεεται ανενοχλητος στον Server (control). Υ΄γ προσπαθω να φτιαξω το Server να δεχεται συγκεκριμενο οριο συνδεσεων (10)
StavrosD Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 Αρχικά σιγουρέψου ότι ο server σου σηκώνει 10 connections. Πρόσεχε γιατί τα connections μοιράζονται στα websites του Server. Μετά στην εφαρμογή σου δήλωσε μια shared μεταβλητή και αύξανέ την για κάθε νέο connection, μείωνέ την για κάθε connection που έκλεισε ή το έκλεισες λόγω timeout, έτσι θα ξέρεις πόσα connections έχεις ανοιχτά. Εναλλακτικά δήλωσε ένα shared arraylist με τα connections.
ntaryl Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 Καλησπερα φιλε μου Λοιπον το να βαλω οριο συνδεσεων τελικα το καταφερα . στο Listen > If Winsock1.UBound = 10 Then '/Τσεκαρει αν το ι ειναι ισο με το 10 Winsock1(index).Close '/αν να τοτε κλεινει το socket Else Winsock1(index).LocalPort = Text1.Text Winsock1(index).Listen CmdListen.Enabled = False End If και αυτο στο ConnectionRequest > i = i + 1 If Winsock1.UBound < 10 Then Load Winsock1(i) Winsock1(i).Accept requestID Winsock1(i).SendData "Sinfo" End If Υ.γ Αυτο που θελω ειναι να μπορω να ανακατανεμω τα socket οταν καποιο κλεισει .Αν ειναι για παραδειγμα το 3 τοτε το 4 8α γινει 3 και ου το καθε εξης ευχαριστω πολυ
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.