עבור לתוכן

לא מצליח לעשות חיבור דרך tcplistener ו tcpclient ב c#

Featured Replies

פורסם

ערב טוב,

קודם כל הקוד, מאוד פשוט:

צד השרת:


TcpListener listener = new TcpListener(IPAddress.Any, 7777);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Connected");

צד לקוח:


TcpClient client = new TcpClient();
client.Connect("79.180.59.199", 7777);
Console.WriteLine("connected to server");

הבעיה היא שאני מקבל את ההודעה Connected כלומר השרת מזהה, לפחות בהתחלה את הלקוח, אבל אני לא מקבל את ההודעה connected to server בצד של הלקוח.

מה אני עושה לא נכון?

פורסם

אתה בטוח שהוא הצליח להתחבר? תבדוק (בצד הלקוח) את client.Connected.

פורסם

בטוח שה-IP שאתה מנסה להתחבר אליו זה ה-IP הנכון?

פורסם

אתה פותח את השרת לוקאלית? תנסה להשתמש ב Ip.loopback (127.0.0.1) במקום בIP של WAN

פורסם
  • מחבר

שניצל :

בצד של הלקוח אני מקבל שגיאה:

System.Net.Sockets.SocketException was unhandled

Message="A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 79.180.59.199:7777"

וגם client.connected= false מן הסתם.. לעומת זאת אצל השרת זה true

infer73 :

בטוח כי אחרת זה לא היה ממשיך לעבר שורת קוד הבאה בצד של השרת.

Moonblade :

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

עריכה : עשיתי את מה שאמרת וזה כן עובד. אז איפה הבעיה?

פורסם

אתה מאחורי ראוטר\האב\סוויץ? אם כן,זה מסביר את העניין

בכל מקרה,כשאתה פותח שרת לוקאלי,תמיד תתחבר אליו עם 127.0.0.1,לא עם שום דבר אחר

פורסם
  • מחבר

כן, יש לי ראוטר. מה צריך לעשות בשביל שמחשבים מרוחקים יתחברו אלי?

פורסם

הפנת (פתחת) את הפורט שאתה מנסה להריץ עליו את השרת?

פורסם
  • מחבר

כן, כמובן הגדרתי שהפורט 7777 יהיה פתוח למחשב שלי.

פורסם

תריץ NETSTAT ב- CMD, ותבדוק אם הפורט שלך פתוח.

פורסם
  • מחבר

איך בודקים זאת דרך netstat ?

פורסם

אתה פותח CMD, מקליד NETSTAT ובודק אם הפורט שלך ברשימה(בLISTENING).

פורסם

תיקון קטן, listening sockets מוצגים בעזרת netstat -a

פורסם
  • מחבר

לא, בשום מקום שם לא כתוב המספר 7777 שהוא הפורט שהגדרתי שיהיה פתוח.

אבל זה לא אמור להופיע שם רק כאשר הפורט פתוח וישנה תעבורה כלשהי, כאילו בשימוש?

פורסם

לא, זה מה שאומר ה-listening - שהפורט פתוח ומחכה לחיבורים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים