בתירגום ישיר זה חיבור שמקשיב.
והכוונה היא ש socklisten נועד כדי לקבל ולשלוח מידע בעמצאות פרוטוקול TCP/ip ללא צורך בשרת חיצוני.
מה שאומר שזה חיבור ישיר בין מחשב למחשב.
אז ליפני שתיראו איך זה עובד אני רוצה לתת לכם דוגמא.
יש שני מחשבים שמחוברים לאינטרנט.
מחשב א' שנקראה לו פשוט - א'.
ומחשב ב' ולו נקרא.. נכון! איך ידעת? - ב'.
אז א' רוצה לשלוח ל-ב' סיסמה מאוד מאוד חשובה ואסור שאיש מלבד א' ו-ב' יראה אותה.
כלומר דרוש חיבור שיכלול רק את א' וב'.
א' וב' מחליטים להשתמש ב- socklisten כמה מפתיע :}
אז א' פותח socklisten עם הפורט 1412 (יוסבר בהמשך).
וב' פותח sock רגיל אם האיפי של א' ואם הפורט 1412 ואז שלוח לו את הנתונים
א' מקבל את הסיסמה וכולם מאושרים :]
עכשיו נתחיל לתכנת טיפה.
אנו זקוקים ל2 כלים:
1-
קוד: בחר הכל
/sockopen [-de] [bindip] <name> <address> <port>
קוד: בחר הכל
-d
מאפשר להשתמש ב .bindip
קוד: בחר הכל
-e
פותח את הסוקט כ SSL כלומר התקשורת מאובטחת ומוצפנת.
קוד: בחר הכל
<name>
השם של החיבור.
קוד: בחר הכל
<address>
האיפי אליו שאיתו היינו רוצים להתקשר.
קוד: בחר הכל
<port>
פורט יוסבר בהמשך.
2-
קוד: בחר הכל
/socklisten [-d] [bindip] <name> [port]
קוד: בחר הכל
-d
מאפשר להשתמש ב bindip .
קוד: בחר הכל
<name>
השם של החיבור.
קוד: בחר הכל
[port]
פורט יוסבר בהמשך.
Port
אז מה זה פורט? הייתי רוצה שתפעילו טיפה את הדמיון שלכם.
תדמיינו ביניין עם 65535 חדרים. אתם גרים באחד החדרים ואתם מזמינים פיצה.
אז כדי שיביא לכם את הפיצה לדירה שלכם אתם צריכים לתת לו את הכתובת של הביניין שלכם וגם את מספר החדר שלכם לא?
אז אותו דבר פה.
כתובת הביניין = ip =*.*.*.*
מיספר הדירה = פורט = *****
כשאנכנו פותחים socklisten על הפורט 1412 אז כל פעם שיש כניסה של נתונים למחשב.
והם מופנים לפורט 1412 אז רק התוכנה שמקשיבה לפורט הזה תעבוד עם הנתונים האילו.
אז נחזור לסיפור שלנו עם מחשב א' וב' רק אם הפקודות
שלב ראשון -
מחשב א' מקשיב לפורט 1412.
קוד: בחר הכל
/socklisten Password 1412
שלב שני-
מחשב ב' פותח סוקט רגיל עם אותו הפורט!.
קוד: בחר הכל
/sockopen Sendpassword 255.255.255.255 1412
255.255.255.255 זה האיפי של מחשב א'.
שלב שלישי-
מחשב ב' שולח את הסיסמה למחשב א'.
קוד: בחר הכל
/sockwrite Sendpasswore 123456
שלב רביעי-
מחשב א' מקבל את הסיסמה.
קוד: בחר הכל
on *:socklisten:*:sockaccept sock2
on *:sockread:sock2: {
sockread %sock.data
echo -a wolds: %sock.data
}
הקוד מלא:
מחשב א':
קוד: בחר הכל
alias opensocket {
sockclose sock*
socklisten sock1 7142
}
on *:socklisten:*:sockaccept sock2
on *:sockread:sock2: {
sockread %sock.data
echo -a wolds: %sock.data
}
איבנט שפשוט רץ כאשר יש קבלה של מידע מסוקט שפתחנו במירק (כל סוג)
קוד: בחר הכל
on *:sockread:*: {
שומר את המידע במישתנה כדי שנוכל לעבוד איתו (אפשר עם מישתנה בינארי ואף מומלץ)
קוד: בחר הכל
sockread %sock.data
אומר שאני מאשר את קבלת המידע מאותו החיבור
קוד: בחר הכל
sockaccept
שימוש:
קוד: בחר הכל
/opensocket
מחשב ב':
קוד: בחר הכל
alias connsocket { sockopen sock3 $1 7142 }
alias writesock { sockwrite -n sock3 $1- }
שימוש:
קוד: בחר הכל
/connsocket IP
ip= איפי של מחשב א'
קוד: בחר הכל
/writesock HELO WOLD
במידה ויש לכם ראוטר אין לכם אפשרות ליפתוח את הסוקט ליסטן אלה אם פתחתם את הפורט בו אתם משתמשים
המדריך נכתב ע"י תומר Vendetta.
//msg q whois #dfoc