פורסם 2005 בינואר 1020 שנים אני עושה פרוייקט סוף שנה בסביבת NET. , לקחתי על עצמי פרוייקט די קשה של בניית תוכנה למסרים מיידים כמו אייסיקיו, מסנג'ר וכו'.השימוש יעשה בWEB SERVICE ובסביבת ASP.NET תוך שימוש בVB.NET, בעיקרון אפשר כל שפה אבל איך אני יסביר לבוחן C# אם למדתי רק VB.עכשיו השאלה החשובה היא האם זה פשוט לבנות שיטות שיעשו לי את העבודה של השליחה המיידית של ההודעה ממחשב למחשב. כל השימוש הזה בפרוטוקולים, ששכחתי תשם של הפרוטוקול שמבצע את השליחה הזאת, הוא קשה? או שאני יוכל ללמוד את זה ?אם מישהו מכיר אתרים שיעזרו לי או אולי פורומים שונים שמתעסקים בנושא זה יעזור לי מאוד, אפילו דוגמאות מוכנות יעזרו-אני ינסה לשבת עם המורה שלי ולהבין מה קורה שם ולנסות לכתוב את זה בעצמי.תודה.
פורסם 2005 בינואר 1020 שנים קצת בעייתי הייתי אומר.איך אתה יוזם קריאה ל client?הקליינט שלך יצטרך לבצע קריאה לסרבר כל כמה שניות... עכשיו שאני חושב על זה ..לא נורא אבל גם לא מדהים.בסך הכל רעיון נחמד.ולעבוד ב tcp:ip זה לא מדהים.אבל זו דרך טובה ללמוד על ..client serverעל איזה DB אתה מתכוון לעבוד? SQL?
פורסם 2005 בינואר 1120 שנים מחבר אנחנו עובדים על מסדי נתונים קטנים אז משתמשים בACCESS דרך OLEDB.לי לא אכפת שהודעות לא יגיעו LIVE ישירות בין 2 המחשבים. העיקר שהרעיון כולו יעבוד וישתמש בWEB SERVICEכדי להגיע לרמה של 5 יחידות
פורסם 2005 בינואר 1120 שנים אתה לא צריך לעשות בדיקה כל X זמן, אתה יכול לפתוח socket על פורט מסויים ולשים אותו על listen, ו-socket נוסף שישמש לשליחת פקודות. פעם (ואני מתכוון, ממש פעם) עשיתי משהו דומה ב-VB, סוג של remote access, בשביל ללמוד קצת איך כל העסק הזה עובד.. בעיקרון ממה שאני זוכר, זה פעל ככה שכל פעם שהתבצע ניסיון חיבור בין שני המחשבים נוצר Event של Socket.connected או משהו כזה (זה יכול להיות על אותו מחשב שמתחבר "לעצמו", או על מחשב אחר - אם יש לך את האיי-פי שלו. אנחנו מדברים כאן על חיבור ישיר בין שני מחשבים, נכון? לא כמו ICQ שזאת בעצם עבודה מול שרת אחד והרבה לקוחות..). ואז ניתן היה לשלוח סטרינגים אחד לשני (string..). מה שאני עשיתי זה דיי פשוט. הכנסתי לו בתחילת ה-string את סוג הפקודה (נניח "msg", "file" או מה שלא תרצה להכניס לשם), משהו שישמש בתור divider (נניח, "||"), ואז את ה-arguments של הפקודה. ה"לקוח", מצידו, זיהה את סוג הפקודה לפי ה argument הראשון, ותיפעל אותה לפי כל שאר ה-string... עריכה: מצאתי את התוכנית הקטנה והנחמדה הזאת איי-שם בסיפריות הארכיון שלי.. הנה מספר שורות קוד שאולי יעזרו לך להבין יותר טוב... (בבקשה תשתדל להתעלם מרמת התכנות הנוראה, מדובר על קוד מאוגוסט 1999) לחיצה על Connect: Private Sub Command1_Click()'10049 - localhost'40020 - invalid ipOn Error Resume Nextsck.RemoteHost = ip1sck.ConnectStatusBar1.SimpleText = "Connection..."If Err And (ip1 = "127.0.0.1" Or ip1 = "localhost") Then StatusBar1.SimpleText = "Unable to connect." MsgBox "Unknown error while tring to resolve localhost. plz restart the server and try again." delay (10) StatusBar1.SimpleText = "Status" GoTo 10End IfIf Err = 40020 ThenStatusBar1.SimpleText = "Unable to connect."MsgBox "Unable to resolve hostname: " & ip1delay (15)StatusBar1.SimpleText = "Status"GoTo 10End IfIf Err ThenMsgBox Err.Descriptiondelay (10)StatusBar1.SimpleText = "Status"End If10:End Sub חיבור מוצלח לשרת: Private Sub sck_Connect()StatusBar1.SimpleText = "Connected. " & "[ " & sck.RemoteHost & " ]"End Sub שליחת מידע: Private Sub sender_Click()On Error Resume NextDim strdata, strtype As StringDim changed As BooleanDim z, lengchanged = FalseIf Combo1.ListIndex = 0 Then strtype = "msgbox"If Combo1.ListIndex = 1 Then strtype = "shell"If Combo1.ListIndex = 2 Then strtype = "delfile"If Combo1.ListIndex = 3 Thenstrtype = "dir"z = InputBox("Enter number of files to get: ")leng = Len(z)strdata = strtype & Text1.Text & z & lengchanged = TrueEnd IfIf Not changed Then strdata = strtype & Text1.Text'Send it!sck.SendData strdataIf Err Then MsgBox "Error. Connection alive ?"End Sub קבלת מידע חוזר: (מהשרת חזרה אל הלקוח, מעיין "אישור קבלה") Private Sub sck_DataArrival(ByVal bytesTotal As Long)Dim strdata, i As Stringsck.GetData strdata, vbStringIf strdata Like "errr*" Then i = Right(strdata, Len(strdata) - 4) MsgBox "Error report from remote machine: " & iEnd IfEnd Sub פתיחת תוכנית השרת: Private Sub Form_Load()On Error Resume NextCall StartSysInfosck.ListenIf Err Then EndEnd Sub זיהוי חיבור ע"י תוכנת השרת: Private Sub sck_ConnectionRequest(ByVal requestID As Long)If sck.State <> sckClosed Then sck.Closesck.Accept requestIDEnd Sub חיבור מוצלח: Private Sub sck_Connect()Dim i'i = "Connection has been just started. The IP is: " & sck.RemoteHostIP'MsgBox iEnd Sub קבלת מידע מהלקוח אל השרת: (אני אחסוך ממך את תוכן הפונקציה, הוא לא מעניין..) Private Sub sck_DataArrival(ByVal bytesTotal As Long)End Sub
פורסם 2005 בינואר 1120 שנים מחבר קודם כל תודה על ההשקעה!בקשר לקוד- אני לא רוצה לעשות חיבור ישיר בין 2 מחשבים אני רוצה שזה יהיה ככה-Client1--Web Service--Client2אני חושב שהקוד שלך עדיין מתאים רק שקצת קשה לי להבין אותו.בעיקרון הWS אמור להכיל את כל הפרוצדורות שמטפלות בכל העניין והאתר ASP אמור להתחבר אליו.ככה שאם אני שולח הודעה אז היא מתקבלת ע"י הWS דרך XML והוא אמור לעשות את כל הטיפול של לאן לשלוח את ההודעה.אני חושב שכל העניין טמון במה שאמרת לגבי הפרוטוקולים שפתוחים על פורט מסויים, רק שאין לי מושג בכל זה ואין חייב ללמוד אותם איכשהו
פורסם 2005 בינואר 1120 שנים כן, זה פחות או יותר פועל על אותו עיקרון...רק שבמקום לשלוח את המידע ישירות בין שני המחשבים, המחשב הראשון שולח לשרת, בייחד עם הכתובת של מחשב היעדואז השרת שולח את המידע למחשב היעד לפי הכתובת שהוא קיבלוכשהלקוח ("היעד") מקבל מידע כלשהוא מהשרת, הוא מקבל אותו ביחד עם נתון כלשהוא שמציין את המקור.סה"כ זה לא כל-כך מסובך אחרי שאתה יודע עם איזה מודולים להשתמש במערכת הספציפית שלך (VB.NET) כדי לבצע את החיבורים בפועל.קצת גוגל לא יזיק בקטע הזה...
פורסם 2005 בינואר 1120 שנים כן, זה פחות או יותר פועל על אותו עיקרון... רק שבמקום לשלוח את המידע ישירות בין שני המחשבים, המחשב הראשון שולח לשרת, בייחד עם הכתובת של מחשב היעד ואז השרת שולח את המידע למחשב היעד לפי הכתובת שהוא קיבל וכשהלקוח ("היעד") מקבל מידע כלשהוא מהשרת, הוא מקבל אותו ביחד עם נתון כלשהוא שמציין את המקור. סה"כ זה לא כל-כך מסובך אחרי שאתה יודע עם איזה מודולים להשתמש במערכת הספציפית שלך (VB.NET) כדי לבצע את החיבורים בפועל. קצת גוגל לא יזיק בקטע הזה... יופי של פיתרון. אך פיספסת את כל הפואנטה. הוא מבקש לעשות זאת עם WS. WS לא עובד עם socket. זה פרוטוקול אחר לגמרי. SOCKET עובד בצורה בינרית לא? יש לי בערך 7 שנות ניסיון בפיתוח ו 3 שנים ב .net. אז אני מאמין שאני יודע על מה אני מדבר. MasterOr ... מה אתה יכול לספר לי על WS? אך הוא עובד? מה העקרונות שלו? אני רוצה לראות שאתה מבין מה אתה רוצה ולא זורק סתם מושגים.... בהמשך נגיע גם לארכיטקטורה של הבנייה . . . . אני לא רוצה להאכיל אותך בכפית
פורסם 2005 בינואר 1120 שנים מחבר אני יודע מה זה WS ברמה של בית ספר כלומר 5 יחידות כנראה שזה לא הרבה.גם למדתי את זה רק בשיעור האחרון אבל זה ממש פשוט.אני שולח מידע לWS ששם יש את כל השיגרות שמטפלות במידע שלי והוא מחזיר לי מה שאני ביקשתי, עוד אנשים יכולים להשתמש באותו WS וכו'אין לי הרבה כח לרשום על זה אבל אני יבין מה שתגיד לי.
פורסם 2005 בינואר 1220 שנים מחבר חחחח זה מצחיק אפילו התרגילים בחמש יחידות הראשונות יותר קשיםעל מה אתה מדבר בדיוק ???
פורסם 2005 בינואר 1320 שנים אני שולח מידע לWS ששם יש את כל השיגרות שמטפלות במידע שלי והוא מחזיר לי מה שאני ביקשתי, עוד אנשים יכולים להשתמש באותו WS וכו' אין לי הרבה כח לרשום על זה אבל אני יבין מה שתגיד לי. תאר לי מה אתה יודע בצורה יותר מפורטת? 1.מה אתה שולח? 2. מה נוצר לך כתוצאה? 3.אך בנוי WS ? (תאור כללי) 4.על איזה פרוטוקול WS מבוסס. אל תכתוב מגילה ... רק את העיקר. (בסוף שבוע יהיה לי יותר זמן אני מקווה אז נמשיך לפתח את הרעיון)
פורסם 2005 בינואר 1320 שנים מחבר אני שולח פרמטרים לWS, הWS מפעיל את השיגרות שלו, סאריליזציה לXML שנשלח לקליינט ובקליינט תהליך נוסף של סאריליזציה...פרוטוקול באמת שאני לא יודע כי אין לי מושג בפרוטוקולים בכל הקשור לשימוש בהם בתיכנות. רקע כללי עליהם ואיך עובדים אני די מבין.
פורסם 2005 בינואר 1420 שנים הפרוטוקול עליו מבוסס WS הוא HTTP.Definitions of HTTP:(HyperText Transfer Protocol) - The protocol for moving hypertext files across the Internet. Requires a HTTP client program on one end, and an HTTP server program on the other end. HTTP is the most important protocol used in the World Wide Web . Definitions of Client :A software program that is used to contact and obtain data from a Server software program on another computer, often across a great distance. EachClient program is designed to work with one or more specific kinds of Server programs, and each Server requires a specific kind of Client. A Web Browser is a specific kind of Client.Definitions of Server :A server is a fancy name for a computer that's hooked up to a network (such as your office LAN, or the Internet) or a piece of software that helps that computer do its job. Servers send files across the network where your computer (the "client") receives and interprets themאז WS שעובד הפרוטוקול HTTP מבוסס על Text. את זה כולנו מבינים.מה היתרון של WS על .... Sockets ,לדוגמא?Socket עובד על Connection שנוצר בין מחשבים בצורה בינרית TCP or UDP (אם אני מבין נכון) לא כתבתי מחיי אפליקציות עם זה.כדי שתוכנה תעבוד בעקרון זה אתה צריך לכתוב גם client שיותקן על כל מחשב כמו ICQ ... או messenger וגם תוכנה ל SERVER שיספק שרותים ויאזין ל clients .אם אתה משתמש ב WS אז יש לך תשתית מוכנה ב server שהוא שרת ה web :IIS - internet information server ההתרון הגדול של HTTP הוא שהוא שקוף ל Firewalls מפני שהוא כמו שנאמר בהתחלה הפרוטוקול הנפוץ בעולם.וברוב המקומות הfirewall מאפשר גישה ל WWW .הוא טקסטואלי ולכן נחשב פחות מזיק וכולם יכולים להשתמש בו בעזרת דפדפן (לדוגמא)כדי שהפורמט יהיה מסודר ותיהיה תבנית מובנת ומוגדרת לWS עובדים אם XML.xml:Extensible Markup Language - A flexible way to create standard information formats and share both the format and the data on the World Wide Webהמבנה של WS יושב בתוך מעטפת שמוגדרת בשם Soap.Soap מבוסס XML.Soap :Simple Object Access Protocol) The standard for web services messages. Based on XML, SOAP defines an envelope format and various rules for describing its contents. Seen (with WSDL and UDDI) as one of the three foundation standards of web services, it is the preferred protocol for exchanging web services, but by no means the only one; proponents of REST say that it adds unnecessary complexity. אפשר להכנם יותר לעומק על מבנה ה soap. אבל זה לא חשוב כרגע.מה שחשוב להדגיש שבפרוטוקול HTTP ה client מבצע פנייה לSERVER .הSERVER מאזין "לאינטרנט" כל הזמן ... כשהוא מקבל בקשה מסויימת (פנייה לדף לדוגמא) הוא מעבד את הדף ומחזיר לclient תוצאה.(בבקשב מגיעה הכתובת IP של הclient).אין מצב שה server יפנה בעצמו ל client .ולכן .... אך כדי לתכנן את הפרוייקט שלך כדי שיעבוד במגבלות האלה?ועכשיו בקצרה על WS.אני שולח פרמטרים לWS, הWS מפעיל את השיגרות שלו, סאריליזציה לXML שנשלח לקליינט ובקליינט תהליך נוסף של סאריליזציה...פרוטוקול באמת שאני לא יודע כי אין לי מושג בפרוטוקולים בכל הקשור לשימוש בהם בתיכנות. רקע כללי עליהם ואיך עובדים אני די מבין.לא ממש מדוייק.ה WS מיצג במבנה טקסטואלי את צורת הבקשה והקבלה של הפונקציות והאובייקטים שה WS עובד איתם.כשאתה פונה ל WS מה שאתה מקבל בסביבת הפיתוח שלך (עם מה אתה עובד? interDev ?) את אותו תאור ...אתה פותח web reference ...כתוצאה נוצר PROXYסביבת הפיתוח שלך יודעת לקרא את המידע וליצר לבד קוד לפי התאור שהיא מקבלת מהWS זה ה PROXY .כך שכשאתה פונה מהתוכנה שלך לפונקציות של ה WS אתה עובד מול פונקציות ואוביקטים אמיתיים שיושבים אצלך."סאריליזציה לXML " כמו שאמרת ... ה XML הוא תוצאת הסאריליזציה שמתבצעת לאובייקטים.אצלך בסביבת הפיתוח אתה עובד מול אובייקטים אמיתיים.אבל הPROXY כתב לך את כל הפונקציות שדרוש כדי להעביר את האובייקטים סאריליזציה (לXML) והכין אותם לשליחה דרך ה WS.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.