
07-12-2005, 20:36
|
|
|
|
חבר מתאריך: 03.08.05
הודעות: 577
|
|
|
תודה
אבל לא הבנתי מה הוא מבקש כאן הוא מבקש לעשות משהו מוזר
1.5. הערה למתכנתי Windows
יש לי אי חיבה עבור Windows, ואני מעודד אותכם לנסות Linux,BSD או Unix במקום אחרי שזה נאמר, אתם עדיין יכולים להשתמש בכתוב כאן בWindows.
דבר ראשון התעלמו מכל קבצי ה Include של המערכת שאני אזכיר, כל מה שאתם צריכים זה
#include <winsock.h>
חכו! אתם גם צריכים לעשות קריאה ל WSAStartup() לפני שאתם עושים משהו אחר עם שקעים. הקוד נראה בערך ככה:
#include <winsock.h>
{
WSADATA wsaData; // if this doesn't work
//WSAData wsaData; // then try this instead
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
אתם גם צריכים להגיד למהדר לקשר את סיפריית Winsock, שבדרך כלל נקראת wsock32.lib או winsock32.lib אומר משהו כזה. שאתם עובדים עם VC++ ,ה יכול להתבצא דרך תפריט הProject, שם ב Settings.... עברו לטאב Link, וחפשו תיבה בשם "Object/library modules". הוסיפו את "wsock32.lib" לרשימה הזאת.
או שככה אני שומע...
לבסוף, עליכם לקרוא ל WSACleanup() שכבר סיימת את עסקכם בסיפרית השקעים. ראה בעזרה המקוונת לפרטים.
ברגע שעשיתם זאת, הדוגמאות במדריך זה צריכות באופן כללי לעבוד. דבר אחד חשוב , אתם לא יכולים להשתמש ב close() כדי לסגור שקע, במקום זאת זאת השתמשו ב closesocket(). בנוסף הפונקציה select() עובדת רק עם מתארי שקעים, לא עם מתארי קבצים (כמו 0 עבור stdin).
יש גם מחלקת שקעים שאתם יכולים להשתמש בה, CSocket. בדקו בעזרה של המהדרים שלכם לפרטים .
די להשיג עוד מידע על Winsock, קרא את Winsock FAQ ותמשיך משם.
לבסוף, אני שומע ש לWindows אין את קריאת המערכתfork() שהיא לרוע המזל נמצאת בכמה מהדוגמאות. אולי אם תקשרו לסיפריית POSIX או משהו כזה תגרמו לדוגמאות לעבוד, או שאתם יכולים להשתמש ב CreateProcess() במקום. fork() לא לוקחת ארגומנטים, ו CreateProcess() לוקחת בערך 48 ביליון ארגומנטים . אם לא בא לכם עליה, הקריאה CreateThread() יותר קלה. אבל דיבור על multithreading הוא מעבר לתחום של מסמך זה, יש לי הגבלה על כמה לדבר, מבינים...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
|