ABA


"כתיבת Messenger Application באמצעות C#"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15018 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15018
Frozen_Prince 
חבר מתאריך 11.5.06
5341 הודעות, דרג אמינות חבר זה
   12:39   27.10.08   
אל הפורום  
  כתיבת Messenger Application באמצעות C#  
 
ערכתי לאחרונה בתאריך 27.10.08 בשעה 12:39 בברכה, Frozen_Prince
 
פעם אחרונה שכתבתי תוכנת צ'אט קטנה הייתה בשפת VB6.0 עם הפקד הכל כך פשוט אך שימושי ביותר: Winsock.

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

מישהו יכול לתת לי קוד בסיסי ליצירת תוכנה בסיסית כזו ב-C#(2008?
1. יצירת קשר Client-Server או Client-Client.
2. העברת טקסט ונתונים אחרים בין שני הצדדים.

בנוסף, אשמח אם מישהו שבנה תוכנה דומה, יעלה אותה, וישתף את הקוד שלה.

תודה מראש,


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  במקום WINSOCK יש אלטרנטיבות בריאות הרבה יותר Sn00py  27.10.08 12:53 1
     Few things Frozen_Prince  27.10.08 13:54 3
         לא שכחתי :) הפורום הוריד סוגריים מרובעות... Sn00py  27.10.08 18:45 4
     מה שאמרת זה מעטפת ל WINSOCK Net_Boy  27.10.08 19:52 6
         ברור, הכוונה שלי Sn00py  27.10.08 21:13 7
  כמה שאלות.. Frozen_Prince  27.10.08 13:37 2
     TCP תומך בכמה ססיונס על אותו פורט אז אין בעיה Sn00py  27.10.08 18:46 5
  יש לי צ'ט ב-C אני חושב... תן לפרטי אם אתה רוצה Shahar_A  29.10.08 17:49 8
  מצטער C לא כל כך עוזר לי :/ אבל תודה בכל מקרה (: Frozen_Prince  29.10.08 17:55 9

       
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות, דרג אמינות חבר זה
   12:53   27.10.08   
אל הפורום  
  1. במקום WINSOCK יש אלטרנטיבות בריאות הרבה יותר  
בתגובה להודעה מספר 0
 
   אני מניח שאתה עובד עם TCP בשביל הצ'אט(לא רואה סיבה ל UDP אלא אם אתה
רוצה לתמוך בסאונד/וידאו). אתה צריך להשתמש במחלקה TcpClient ו- TcpListener. אני כותב לך פה קוד שאולי יעזור לך, אם יש שאלות, תרגיש חופשי. באמת שזה נורא פשוט לעשות דברים כאלה ב NET.:


// Server
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace ConsoleApplication25
{
class Class1
{
TcpListener tl;

public static void Main()
{
Class1 c = new Class1();
c.beginWork();
}

private void beginWork()
{
tl = new TcpListener(IPAddress.Any, 4050);
Thread lt = new Thread(new ThreadStart(Listen));

lt.Start();
}

private void Listen()
{
tl.Start();
TcpClient client;
while (true)
{
client = tl.AcceptTcpClient();
Thread clientThread = new Thread(new
ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
}

private void HandleClientComm(object client)
{
TcpClient tcpClient = (TcpClient)client;
NetworkStream ns = tcpClient.GetStream();

byte message = new byte;
int bytesRead;

while (true)
{
try
{
bytesRead = ns.Read(message, 0, 4096);
}
catch
{
break;
}
if (bytesRead == 0)
break;

ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine(encoder.GetString(message, 0,
bytesRead));

}

tcpClient.Close();
}
}
}

// Client
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApplication24
{
class Class1
{
public static void Main()
{
TcpClient client = new TcpClient();

IPEndPoint serverEndPoint =
new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4050);

client.Connect(serverEndPoint);

NetworkStream clientSt
ream = client.GetStream();

ASCIIEncoding encoder = new ASCIIEncoding();
byte buffer = encoder.GetBytes("Hello Server!");

clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
}
}
}

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Frozen_Prince 
חבר מתאריך 11.5.06
5341 הודעות, דרג אמינות חבר זה
   13:54   27.10.08   
אל הפורום  
  3. Few things  
בתגובה להודעה מספר 1
 
ערכתי לאחרונה בתאריך 27.10.08 בשעה 14:10 בברכה, Frozen_Prince
 
שכחת להוסיף אחרי byte (מערך) ולהגדיר את גודלו.
אז הגדרתי את גודלו ל4096.

וגם ב-Client הוספתי אחרי ה-Byte , אחרת הוא לא מוכן להתקמפל.
אבל חוץ מזה זה רץ מושלם.

תודה רבה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות, דרג אמינות חבר זה
   18:45   27.10.08   
אל הפורום  
  4. לא שכחתי :) הפורום הוריד סוגריים מרובעות...  
בתגובה להודעה מספר 3
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   19:52   27.10.08   
אל הפורום  
  6. מה שאמרת זה מעטפת ל WINSOCK  
בתגובה להודעה מספר 1
 
   וWINSOCK זה גם מעטפת עם קצת תוספות ל BERKELY SOCKETS


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות, דרג אמינות חבר זה
   21:13   27.10.08   
אל הפורום  
  7. ברור, הכוונה שלי  
בתגובה להודעה מספר 6
 
   שיש אפשרות לעשות את אותו דבר בדיוק עם המחלקה Socket, פשוט כך... אבל לדעתי זה מיותר שיש wrapper מוצלח כמו TcpClient...

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Frozen_Prince 
חבר מתאריך 11.5.06
5341 הודעות, דרג אמינות חבר זה
   13:37   27.10.08   
אל הפורום  
  2. כמה שאלות..  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 27.10.08 בשעה 14:10 בברכה, Frozen_Prince
 
אם אני רוצה ששני הצדדים יוכלו לקבל ולשלוח הודעות.
אני יכול לאחד את הקוד?
האם הם יוכלו להאזין ולשלוח על אותו פורט או שעלי לבחור פורט האזנה נפרד בכל מחשב?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות, דרג אמינות חבר זה
   18:46   27.10.08   
אל הפורום  
  5. TCP תומך בכמה ססיונס על אותו פורט אז אין בעיה  
בתגובה להודעה מספר 2
 
   תדאג לעבודה מסודרת של ת'ראדינג והכל יהיה בסדר
ויותר מנשמח לראות את התוצר הסופי!

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Shahar_A 
חבר מתאריך 14.6.04
4487 הודעות, דרג אמינות חבר זה
   17:49   29.10.08   
אל הפורום  
  8. יש לי צ'ט ב-C אני חושב... תן לפרטי אם אתה רוצה  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Frozen_Prince 
חבר מתאריך 11.5.06
5341 הודעות, דרג אמינות חבר זה
   17:55   29.10.08   
אל הפורום  
  9. מצטער C לא כל כך עוזר לי :/ אבל תודה בכל מקרה (:  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net