Η δημιουργία ενός διακομιστή από την αρχή είναι μια μεγάλη εργασία. Ωστόσο, αυτό μπορεί να βελτιώσει σημαντικά τις δεξιότητές σας προγραμματισμού και να σας επιτρέψει να τις τροποποιήσετε ανάλογα με τις ανάγκες σας. Αυτό το σεμινάριο θα χρησιμοποιεί python και χαμηλού επιπέδου προγραμματισμό πρίζας για τη δημιουργία διακομιστή, ώστε οι πελάτες να μπορούν να επικοινωνούν μεταξύ τους. Αυτό θα καλύψει επίσης τη διαδικασία μόνο στα παράθυρα. Κάποιες πληροφορίες θα δοθούν στις οδηγίες, αλλά αν θέλετε απλώς τον κωδικό, παρέχεται στα σχήματα. (Σημείωση: οι οδηγίες που παρουσιάζονται εδώ είναι μόνο τα βασικά).
Βήματα
Μέθοδος 1 από 3: Εγκατάσταση Python
Βήμα 1. Λήψη Python
Μεταβείτε στον κύριο ιστότοπο της python και κάντε λήψη του Python 2.7.10. Μετά τη λήψη, εκτελέστε τα βήματα του προγράμματος εγκατάστασης python με προεπιλεγμένες ρυθμίσεις. Αυτός ο σύνδεσμος παρέχεται εδώ
Βήμα 2. Εκτελέστε το IDLE (Python GUI)
Μεταβείτε στο φάκελο Python 2.7 και εκτελέστε το IDLE (Python GUI), το python θα πρέπει τώρα να βρίσκεται στο μενού έναρξης όπου βρίσκεται το IDLE.
Βήμα 3. Δημιουργήστε ένα νέο αρχείο
Μεταβείτε στο Αρχείο στην επάνω αριστερή γωνία του παραθύρου που μόλις ανοίξατε και επιλέξτε Νέο αρχείο, θα πρέπει να έχετε ένα κενό παράθυρο ανοιχτό με τον τίτλο Χωρίς τίτλο.
Μέθοδος 2 από 3: Δημιουργία διακομιστή
Βήμα 1. Εισαγάγετε τις απαραίτητες ενότητες
Οι δύο ενότητες που απαιτούνται για αυτόν τον κώδικα είναι "υποδοχή" και "σπείρωμα". Αυτό μπορεί να γίνει πληκτρολογώντας στην πρώτη γραμμή "από εισαγωγή πρίζας *" και στην επόμενη γραμμή "εισαγωγή νήματος".
Βήμα 2. Δημιουργήστε ένα νέο νήμα
Αυτό θα χειριστεί την αντιστοίχιση 2 πελατών μεταξύ τους. Τα νήματα είναι διαδικασίες που μπορούν να εκτελούνται ενώ εκτελείται το κύριο πρόγραμμα. Πληκτρολογήστε ακριβώς όπως δείχνει το σχήμα. Αυτό θα ρυθμίσει τις μεταβλητές στο νήμα έτσι ώστε να μπορούν να κληθούν αργότερα.
Βήμα 3. Δημιουργία διαδικασίας νήματος
Για να επικοινωνούν απευθείας οι πελάτες, πρέπει να στείλετε ο ένας στον άλλον πληροφορίες, οι οποίες περιλαμβάνουν τη διεύθυνση IP τους και ποια θύρα χρησιμοποιούν. Για να γίνει αυτό, πρέπει να δημιουργήσετε ένα αντικείμενο υποδοχής που μπορεί να γίνει με "variableName = socket (AF_NET, SOCK_DGRAM)". Αυτό θα δημιουργήσει ένα αντικείμενο υποδοχής που χρησιμοποιεί το πρωτόκολλο UDP. Επόμενο Συνδέστε την πρίζα στη διεύθυνση IP σας με έναν συγκεκριμένο αριθμό θύρας με "roomSocket.bind (('", self.port)) "Η κενή περιοχή αντιπροσωπεύει τη δική σας διεύθυνση IP του υπολογιστή σας στο τοπικό σας δίκτυο και το self.port εκχωρεί αριθμός θύρας που περιλαμβάνεται όταν καλείτε αυτό το νήμα. Το τελευταίο πράγμα που έχετε να κάνετε με αυτήν την πρίζα είναι να στείλετε πληροφορίες μέσω αυτής. Δεδομένου ότι πρόκειται για υποδοχή UDP, πρέπει απλώς να γνωρίζετε τη διεύθυνση IP και τη θύρα του υπολογιστή στον οποίο στέλνετε πληροφορίες, η σύνταξη για αποστολή είναι "socketName.sendto (IP, port)"
Βήμα 4. Δημιουργήστε τις καθολικές μεταβλητές
Για αυτό το βήμα θα χρειαστεί να ορίσετε πολλές μεταβλητές, η οποία περιλαμβάνει μια λίστα χρηστών, αριθμούς θυρών, αριθμό πελατών, πελάτες για το νήμα και το αναγνωριστικό δωματίου. Θα χρειαστεί επίσης να δημιουργήσετε μια πρίζα, έτσι ώστε ο διακομιστής σας να μπορεί να αλληλεπιδρά με το διαδίκτυο. Αυτό γίνεται δημιουργώντας ένα νέο αντικείμενο υποδοχής και συνδέοντάς το στη διεύθυνση IP σας με έναν συγκεκριμένο αριθμό θύρας. (Ο αριθμός θύρας μπορεί να είναι οτιδήποτε, αλλά συνήθως είναι κάτι υψηλό για να αποφύγετε τη χρήση άλλης διαδικασίας ή τη χρήση δεσμευμένων αριθμών θύρας.)
Βήμα 5. Δημιουργήστε την κύρια διαδικασία διακομιστή
Αυτό θα λάβει τη διεύθυνση πελάτη καθώς και θα ξεκινήσει το νήμα που δημιουργήθηκε νωρίτερα. Αυτό περιλαμβάνει την αναμονή για τη λήψη δεδομένων από το buffer και τη λήψη της διεύθυνσης του πελάτη και την αποθήκευσή τους για χρήση στο νήμα. Ο τρόπος για να λάβετε πληροφορίες από την πρίζα σας είναι να καλέσετε με το "socketName.recvfrom (1024)", ο αριθμός εδώ είναι μόνο το ποσό των byte που διαβάζονται κάθε φορά. Σε αυτό το παράδειγμα, το αποθηκεύουμε σε μια μεταβλητή που ονομάζεται userAddr και μόλις συμβεί αυτό, μπορείτε να αποθηκεύσετε αυτήν τη διεύθυνση στη λίστα που δημιουργήθηκε στο βήμα 4. Η δήλωση if θα δημιουργήσει ένα νήμα δωματίου εάν συνδεθούν δύο άτομα και θα δημιουργήσει μόνο ένα δωμάτιο όταν συμβαίνουν δύο διαφορετικές συνδέσεις.
Βήμα 6. Αποθηκεύστε την εργασία σας
Αυτό πρέπει να γίνει σε έναν κατάλογο στον οποίο μπορείτε να φτάσετε εύκολα, ώστε να είναι εύκολα προσβάσιμος για έλεγχο.
Μέθοδος 3 από 3: Δοκιμή
Βήμα 1. Δημιουργήστε έναν πελάτη δοκιμής
Αυτός είναι ένας πολύ βασικός πελάτης που θα χειρίζεται μόνο αν ο διακομιστής είχε στείλει ή όχι τις πληροφορίες του άλλου πελάτη στον τρέχοντα πελάτη. Λάβετε υπόψη ότι σε αντίθεση με τον κωδικό διακομιστή, αυτός ο κωδικός απαιτεί όνομα διακομιστή. Εάν εκτελείτε όλα αυτά σε έναν υπολογιστή, το όνομα διακομιστή πρέπει να είναι το όνομα του υπολογιστή σας. Μπορείτε να μάθετε το όνομα του υπολογιστή σας κάνοντας δεξί κλικ στο My Computer και μεταβαίνοντας στις ιδιότητες.
Βήμα 2. Αποθηκεύστε την εργασία σας
Θα πρέπει να βρίσκεται στον ίδιο κατάλογο με τον κωδικό διακομιστή.
Βήμα 3. Ανοίξτε τρία διαφορετικά παράθυρα εντολών
Μεταβείτε στο μενού έναρξης και στη γραμμή αναζήτησης πληκτρολογήστε "cmd" και πατήστε enter. Κάντε αυτό τρεις φορές. Τα παράθυρα πρέπει να μοιάζουν με αυτό.
Βήμα 4. Εκτελέστε τα προγράμματα
Θα πρέπει να πληκτρολογήσετε την ακριβή διαδρομή όταν χρησιμοποιείτε το παράθυρο εντολών. Θα χρειαστεί να εκτελέσετε τον κωδικό διακομιστή πρώτα σε ένα παράθυρο εντολών και στη συνέχεια τον δοκιμαστικό κωδικό πελάτη στα άλλα δύο. Εάν όλα ήταν επιτυχημένα, θα λάβετε κάτι από αυτά τα μηνύματα στο παράθυρό σας.
Προειδοποιήσεις
- Αυτό το πρόγραμμα θα λειτουργεί μόνο όταν το εκτελείτε και θα δοκιμάζετε πελάτες στο ίδιο τοπικό δίκτυο.
- Το Python 2.7.10 είναι ξεπερασμένο και πλησιάζει στο τέλος της υποστήριξής του. Για να συνεχίσετε να δημιουργείτε καλούς διακομιστές, συνιστάται να εγκαταστήσετε την τελευταία έκδοση του Python 3.