לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #3  
ישן 09-05-2008, 17:26
  doodi71 doodi71 אינו מחובר  
 
חבר מתאריך: 22.10.07
הודעות: 117
בתגובה להודעה מספר 2 שנכתבה על ידי sigsig שמתחילה ב "אתה צריך לעזור לנו לעזור..."

קודם כל תודה על התגובה.
אז ככה, התחלתי לקרוא קצת על המושגים שדיברת עליהם ואת חלקם אני מבין עכשיו.
התחלתי לכתוב קטעי קוד (אני לא מחפש משהו מוכן, ממש לא).
אני כבר בתוך העניין ומצליח ליצור תקשורת אבל יש לי מספר שאלות:
1. אני עובד בשיטה הראשונה שהזכרת SERVER/CLIENT ויצרתי 2 מתודות: האחת קולטת והאחרת שולחת:
קוד:
privatevoid sending(string str) { TcpClient tcpclnt = newTcpClient(); tcpclnt.Connect("127.0.0.1", 8001); Stream stm = tcpclnt.GetStream(); ASCIIEncoding asen = newASCIIEncoding(); byte[] ba = asen.GetBytes(str); stm.Write(ba, 0, ba.Length); byte[] bb = newbyte[100]; int k = stm.Read(bb, 0, 100); string messege = ""; for (int i = 0; i < k; i++) { messege += Convert.ToChar(bb[i]); } tcpclnt.Close(); } privatestring Reading() { try { IPAddress ipAd = IPAddress.Parse("127.0.0.1"); TcpListener myList = newTcpListener(ipAd, 8001); myList.Start(); Socket s = myList.AcceptSocket(); byte[] b = newbyte[100]; int k = s.Receive(b); string messege = ""; for (int i = 0; i < k; i++) { messege += Convert.ToChar(b[i]); } ASCIIEncoding asen = newASCIIEncoding(); s.Send(asen.GetBytes("The string was recieved by the server.")); s.Close(); myList.Stop(); return messege; } catch (Exception ex) { MessageBox.Show("Error..... " + ex.StackTrace); return"K"; } }



הבעיה היא שאני לא מבין כ"כ מה קורה אחרי שכבר הפעלתי את המתודה Reading פעם אחת.
זאת אומרת, הצלחתי לשלוח נגיד איזושהי מחרוזת שהמחשב השני ה-SERVER הצליח לקבל,
העניין שאני רוצה לשלוח עכשיו עוד מחרוזת מאותו המחשב. מה אני צריך לעשות עכשיו? להפעיל שוב פעם את המתודה READING ואת המתודה SENDING בכל אחד מהמחשבים בהתאם?

המון המון תודה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 09-05-2008, 18:41
  sigsig sigsig אינו מחובר  
 
חבר מתאריך: 23.11.07
הודעות: 187
בתגובה להודעה מספר 3 שנכתבה על ידי doodi71 שמתחילה ב "קודם כל תודה על התגובה. אז..."

סחטיין! אני שמח לשמוע שהתעניינת, קראת והתחלת לנסות לבד. לאנשים כאלה אני שמח לעזור.

בקוד שפירסמת אני רואה כמה בעיות:

1. כתובת ה-IP שרשומה היא 127.0.0.1. אתה בטוח שזה עובד לך? הכתובת הזו מפנה למחשב המקומי. בצורה הזו מחשב מדבר עם עצמו ולא עם מחשב אחר.
2. מה שאתה עושה במתודות שלך זה פותח TCPCLIENT או TCPLISTENER, שולח או מקבל הודעה, ואז סוגר את האובייקט. בצורה כזו תוכל לשלוח רק הודעה אחת, ורק בכיוון אחד. תחשוב על זה בתור שפורפרת טלפון - שני הצדדים צריכים לדבר לתוכה במשך כל השיחה. מה שאתה עושה זה להרים שפורפרת, לדבר או להקשיב להודעה אחת ואז להניח. את האובייקטים יוצרים פעם אחת בתחילת השיחה, משתמשים בהם להעביר כמה הודעות שרוצים, ואז סוגרים אותם.
3. אמנם זה קצת מתקדם (או שבכלל לא רלוונטי לגביך) - האם אתה רוצה שהתוכנית שלך תעשה משהו בזמן שהיא ממתינה לתקשורת/שולחת תקשורת? כי בדרך שזה כתוב כרגע התוכנית שלך תבלה את רוב זמנה בהמתנה לתקשורת ולא תעשה כלום חוץ מזה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 10-05-2008, 11:26
  doodi71 doodi71 אינו מחובר  
 
חבר מתאריך: 22.10.07
הודעות: 117
בתגובה להודעה מספר 4 שנכתבה על ידי sigsig שמתחילה ב "סחטיין! אני שמח לשמוע..."

חח תודה! אני באמת זקוק פה לעזרה:
1. זה בכוונה ככה. רק אחרי שאני אראה שאני מצליח לעבוד חלק כשהמחשב מדבר עם עצמו אני אסדר שזה יעבוד גם עם מחשב אחר.
2. הבנתי!
3. האמת היא שאני רוצה, אבל רק בהמשך, כעת אני רוצה לעשות את זה ברמה הבסיסית ביותר.

4. יש לי בעייה והבעייה היא כזו: אני מגדיר form (להלן "פורם") מסוים שבו שני המשתמשים לוחצים כל אחד על הכפתור המתאים ובכך יוצרים תקשורת. כתבתי פקודה שבה כשאני מזהה את התקשורת שני המשתמשים ממשיכים לפורם חדש. הבעייה היא שבשביל לפתוח פורם חדש צריך להגיד אותו תחילה (form4 L=new form4()).
זה יוצר בעיה מכיוון ששמתי לב שבעת ההגדרה של הפורם, התוכנית למעשה מריצה את הפורום החדש שהגדרתי ומריצה פקודות שקיימות במתודה הראשית של הפורם. לדוגמא, אם הגדרתי את פורם2 בפורם1, ובמתודה הראשית של פורם2 יש פקודה ל-MessageBox, אזי בעת ההגדרה של פורם2 בפורם1, ה-MessageBox יקפוץ!
אני מקווה מאוד שהבנת אותי.
כיצד אפשר לפתור את הבעייה הזו? זה מפריע מאוד!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 05:38

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר