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

 

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

Οριο συνδεσεων Client Side

Îåêßíçóå áðü ôï ìÝëïò ntaryl. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 21-01-2010, 13:48. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-01-2010, 21:40 56433

    Οριο συνδεσεων Client Side

    Συνημμένα: reverse how to.rar

    καλησπερα   

    φτιαχνω ενα  προγραματακι(client -server)Υο εφτιαξα να δεχεται περιοσοτερες απο μια συνδεσεις ο Server(reverse)

    το ερωτημα  μου ειναι το πως μπορω να το κανω να δεχεται ενα νουμερο συνδεσεων  για παραδειγμα να συνδεονται μονο 10 ?

    Ευχαριστω  πολυ  και καλο βραδυ    




    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  14-01-2010, 22:09 56434 σε απάντηση της 56433

    Απ: Οριο συνδεσεων Client Side

    Τί εννοείς server? Τί έφτιαξες δηλαδή? Windows Service? COM+ component? Web εφαρμογή? Desktop η οποία ακούσε σε sockets? Κάτι άλλο?
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-01-2010, 23:15 56435 σε απάντηση της 56434

    Απ: Οριο συνδεσεων Client Side

    Καλησπερα   

    εφτιαξα ενα μικρο παραδειγματακι (reverse connection)

    Client Server χρησιμοποιωντας το tcp protocol  και το mswinsck.ocx  .


    Τελικα το  εφτιαξα   

    Βαζοντας 

    Private Sub CmdListen_Click()
    If Winsock1.UBound = 10 Then
    Winsock1(index).Close
    Else
    Winsock1(index).LocalPort = Text1.Text
    Winsock1(index).Listen
    CmdListen.Enabled = False
    End If
    
    
    End Sub
    Private Sub winsock1_ConnectionRequest(index As Integer, ByVal requestID As Long)
    i = i + 1
    If Winsock1.UBound < 10 Then
    Load Winsock1(i)
    Winsock1(i).Accept requestID
    Winsock1(i).SendData "Sinfo"
    End 
    End Sub

    ετσι δεν δεχεται αλλες συνδεσεις  ..

    καλο  βραδυ   


    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  21-01-2010, 13:48 56556 σε απάντηση της 56435

    Απ: Οριο συνδεσεων Client Side

    Θεωρώντας ότι ο κώδικας που έχεις γράψει είναι μέρος του προγράμματος και όχι το όλο πρόγραμμά σου, το πρόβλημα σου ότι δεν εξυπηρετεί περισσότερες από μία συνδέσεις, δεν οφείλεται στον κώδικα. Ο κώδικας που έχεις δημοσιεύσει είναι κατάλληλος στο να μπορεί να εξυπηρετήσει πολλαπλά requests, στην ίδια port χωρίς port locking, αλλά το σφάλμα που έχεις κάνει είναι ότι στο event που κάνεις accept το connection, προσπαθείς να "απαντήσεις" - στείλεις δεδομένα - στον client που εκείνη την ώρα προσπαθεί να συνδεθεί.

    Αυτό δεν πρόκεται να συμβεί, μιας και αφού είσαι μέσα σε ένα event, και η port δεν έχει ουσιαστικά ανοίξει ακόμα, εσύ προσπαθείς να καλέσεις να απαντήσεις, κάτι που απαιτεί το winsock να είναι σε κάποιο άλλο state - μπορεί να το δεις να δουλεύει σε debug mode, αλλά δεν είναι κάτι που θα τρέξει σε running enviroment. Αυτό το .SendData θα ήταν πιο καλά αν το έβαζες στο _DataArrival event, να απαντούσες στον client, αφού έπερνες πρώτα λάμβανες κάτι από τον client.

    Γενικά ο προγραμματισμός σε Winsock και Serial απαιτεί free threading και multitasking, κάτι που η Visual Basic 6 δεν μπορεί να προσφέρει. Θα μπορούσες να βοηθήσεις στην απόκριση του control, με τη χρήση του DoEvents μετά από κάθε εντολή προς το winsock control, αλλά σε υψηλές περιπτώσεις stress τα προβλήματα θα είναι έντονα.

     

    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