שרת אינטרנט פשוט C++

Srt Yntrnt Pswt C



במאמר זה נלמד על שרתי אינטרנט ב-C++. המטרה העיקרית של שרת האינטרנט היא לטפל בבקשות ה-HTTP המגיעות, לעבד את כל הבקשות הקרובות ולהגיב עם תוכן ה-HTML של האינטרנט בתמורה. עלינו לתחזק את שרת האינטרנט ב-C++ על ידי הוספת ספריות הרשת בסביבת C++, כמו 'שקעים', כדי לטפל בתקשורת ובבעיות ברשת. שרת אינטרנט הוא עמוד השדרה של האינטרנט ומהווה דרך לתקשורת בין משתמשים לשרתים ראשיים. הבה נעריך את התהליך של יצירת שרת אינטרנט פשוט באמצעות יישומים מתאימים לדוגמה.

הגדרת הסביבה

ראשית עלינו להגדיר את כל האפשרויות הנדרשות בסביבה שלנו. עלינו להשתמש בשקעים כדי להאזין לבקשות ה-HTTP הנכנסות. לאחר מכן, אנו קושרים את השקע ליציאה הספציפית במחשב המארח כמערכת שלנו. לאחר מכן, כאשר הלקוחות קוראים לבקשה, השרת מקשיב לבקשות המחוברות הנכנסות הללו. השרת מגיב לבקשות המשתמש באמצעות בקשות HTTP כדי להביא את בקשת המשתמש לשרת. לאחר מכן, השרת מטפל בבקשה ומחזיר את תגובות ה-HTTP למשתמש עם יצירה נכונה.







טיפול Sockets של שרת האינטרנט

במפגש זה נלמד ששקעים יוצרים תקשורת בין תהליכים שונים הפועלים במערכת שלנו. השקעים משמשים בעצם ליצירת התקשורת או החיבור בין הדפדפן של הלקוח לשרת שלנו. חיבור השקע בנוי ב-C++ באופן המוזכר בהמשך:



כאן, נגדיר את הספריות עבור sockets בתור '#include '. בפונקציה הראשית, אנו יוצרים את השקע על ידי אתחול ה-'server_fd'. לאחר מכן, אנו בודקים את הערך של 'server_fd' המכיל את אימות החיבור למלאי. אם השרת מושבת ולא עובד כשורה, הוא מחזיר או מציג את ההודעה 'יצירת השקע נכשלה'. אחרת, ההודעה שיש לה את כתובת ה-IP של שרת האינטרנט תציג את הנתונים של HTML בשרת האינטרנט.



#include
#include
#include
int main ( ) {
int server_fd = socket ( AF_INET, SOCK_STREAM, 0 ) ;
אם ( server_fd == - 1 ) {
std::cerr << 'יצירת שקע נכשלה' ;
לַחֲזוֹר -1 ;
}
// אַחֵר
// {
// std::cout << 'יְצִיאָה' ;
// }
// לִקְשׁוֹר
std::cout << 'http//:127.0.0.1:8080' ;
// קוד נוסף מופיע כאן
לַחֲזוֹר 0 ;
}


הפלט של קוד זה מצורף בקטע הבא:






זה מראה שהשקע נוצר בהצלחה ב-C++ כדי להתחבר לשרת האינטרנט.

טיפול בשרת אינטרנט ב-C++

שרת האינטרנט של המערכת מוגדר לטפל במושגים השונים של C++ כמו מיון מיזוג, מיון ליניארי וכו'. זכור לאתחל את ספריות הרשת החשובות. שרת האינטרנט פועל על המחשב המקומי (127.0.0.1) ומאזין ביציאה 8080.



כלול את הספריות הדרושות בשפת התכנות C++ באופן הבא:

# לִכלוֹל < לְהַגבִּיר / asio.hpp >


זכור כי יצירת שרת אינטרנט ב-C++ אינה תהליך קל וגוזל זמן. אנו יכולים לטפל בחיבורים הנכנסים באמצעות 'async_accept'.

תגובות שרת בקוד C++ בשרת האינטרנט

תגובת השרת חייבת להיות HTTP שעובדת על הדפדפן ומציגה את הפלט בתצוגת HTML בדף האינטרנט. כל הספריות מנהלות את השרתים ומטפלות בכל הבקשות התקפות.

כריכה והאזנה של שרת האינטרנט

לאחר מכן, עלינו לדעת על הקישור וההאזנה של שרת האינטרנט כדי להפעיל את הקוד בדף האינטרנט בקלות. לאחר מכן, עלינו לאגד את השקע לכתובת הנתונה של המערכת שלנו, בעצם כתובת ה-IP והיציאה שעליהן השקעים הללו פעילים. ביציאה, אנו מתחילים להאזין לחיבורים נכנסים.

אנחנו צריכים לאתחל את מספר הספריות הבודדות כדי לאגד ולקשר.

כתובת Sockaddr_in;


אנחנו יכולים לאגד את השרת. אם השרת מושבת או אינו מחובר, ההודעה אינה מוצגת בדף האינטרנט של אף דפדפן.

קבלת החיבורים לשרת האינטרנט

בחלק זה נלמד כיצד נוכל לשלוט בזרימת הבקשות של הלקוח. השרת מקבל את כל בקשות הלקוח באמצעות פרוטוקול HTTP. שקע השרת מציין את גודל ההודעה שמתקבלת בשרת האינטרנט מהלקוח. ההודעה מכילה את החיבור והכתובת של שקע השרת בצורה ברורה וייחודית יותר. אנו בודקים אם השרת צריך להגיב אם נמצא שקע המשתמש או לא. אם חיבור שקע המשתמש לא נמצא, לא נוכל לקבל את החיבור לשרת אינטרנט.

שיטות שליחה וקבלה של הנתונים מקצה המשתמש והשרת

לאחר יצירת ה-socket links וקבלת החיבור, הדבר הבא הוא לשלוח את הנתונים לצד השרת ולקבל את הנתונים מהשרת באמצעות מילות מפתח שונות ובניית הפונקציות הקשורות לשליחת וקבלת הנתונים ב-C++. כאן, אנו בודקים את תגובת הנתונים. האם בקשה זו לקבל את הנתונים או לפרסם את הנתונים משרת האינטרנט? אנו בודקים את סטטוס התגובה של בקשת הלקוח. אנו מאחסנים באופן זמני את כל בקשות הלקוח במאגר להצגת ההודעה או הפלט בשרת האינטרנט.

מיון ליניארי ב-C++

בואו נבצע כאן את המיון הליניארי ונציג את תוצאת המיון הליניארי בשרת האינטרנט בקלות. קטע הקוד של המיון הליניארי מצורף בקטע הבא:

#include
שימוש במרחב שמות std;
בטל חיפוש לינארי ( int arr [ ] , int len, int item ) {
ל ( int אני = 0 ;אני < len;i++ ) {
אם ( arr [ אני ] == פריט ) {
cout << פריט << 'נמצא באינדקס:' << אני;
לַחֲזוֹר ;
}
}
cout << 'לא נמצא' ;
}
int main ( ) {
int arr [ ] = { 10 , 5 , חֲמֵשׁ עֶשׂרֵה , עשרים ואחת , - 3 , 7 } ;
int len ​​= sizeof ( arr ) / מידה של ( arr [ 0 ] ) ;
int פריט = עשרים ואחת ;
ליניארי חיפוש ( אר, לן, פריט ) ;
לַחֲזוֹר 0 ;
}


בדוגמה זו, אנו מחפשים את הפריט '21' באיזה אינדקס. אז, אנחנו מפעילים את הקוד הזה. הפלט של קוד זה מצורף בקטע הבא:


פלט זה פתוח כעת בשרת האינטרנט כמו בכל דפדפן כגון Chrome, Edge וכו'.

סיים את כל החיבורים לאחר תצוגת הפלט

זהו השלב האחרון בטיפול בנתונים בשרת אינטרנט. זכור לסגור את חיבורי השקע לאחר ביצוע הפלט הנדרש. אנו סוגרים את השקע כאן באמצעות פונקציות כגון 'close(server_id)' ו-'close (socket client)'.

בסיום הפעלת השרת, הפלט הצפוי מוצג בדף האינטרנט על ידי גישה לכתובת 'http//localhost:8080'.

סיכום

בסוף מאמר זה, אנו יכולים לומר שהטיפול הפשוט בשרת האינטרנט ב-C++ הוא מאוד מורכב וצריך ריכוז מלא כדי לשלוח ולקבל את הבקשה של לקוח ה-HTTP. אנו יכולים להרחיב את הפונקציונליות של שרת האינטרנט כדי להציג את התוכן באופן דינמי בדף האינטרנט. אני מקווה, מאמר זה מועיל עבורך, ותוכל להפעיל את הדוגמאות הללו על הסביבה שלך כדי להבין את השלבים הנדרשים ליצירת שרת אינטרנט פשוט ב-C++.