50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

نوشتن چت پیشرفته با سی شارپ

سلام

ایجاد یک چت روم در اتوماسیون داخلی سازمانها و ادارات مسئله ی زیاد پیچیده و مشکلی نیست. ولی موردی که من در موردش زیاد سرچ زدم و توی سایتهای خارجی چیزی پیدا نکردم ابنه که میخوام همراه با پیام نمایش داده شده از هرکاربر برای کاربر مشاهده کننده، تصویر کاربری اون همراه با هر پیام ارسال و نمایش داده بشه.

چیزی شبیه به تصویر زیر:

سلام
ایجاد یک چت روم در اتوماسیون داخلی سازمانها و ادارات مسئله ی زیاد پیچیده و مشکلی نیست. ولی موردی که من در موردش زیاد سرچ زدم و توی سایتهای خارجی چیزی پیدا نکردم ابنه که میخوام همراه با پیام نمایش داده شده از هرکاربر برای کاربر مشاهده کننده، تصویر کاربری اون همراه با هر پیام ارسال و نمایش داده بشه.
چیزی شبیه به تصویر زیر:
||http://tosinso.com/files/get/bf3c74d3-8f36-475e-98a1-0e4d42d014ee||

از دوستان کسی میدونه با سی شارپ چطوری میشه این امکاندهی را به چت روم شبکه های داخلی کاربران ( با ویندوز فرم) پیاده سازیش کرد؟

از دوستان کسی میدونه با سی شارپ چطوری میشه این امکاندهی را به چت روم شبکه های داخلی کاربران ( با ویندوز فرم) پیاده سازیش کرد؟

پرسیده شده در 1395/08/19 توسط

5 پاسخ

0

سلام دوست عزیز، برنامه های چت داخل سازمانی معمولاً از پروتکل TCP استفاده می کنن، حالا اینکه شما تصاویر رو بخوایید نمایش بدید، کافیه تو اطلاعاتی که از طریق Chat Server به سمت Client ها ارسال میشه، اطلاعات کاربر ارسال کننده مانند تصویر و نام رو به همراه پیام ارسال کنید.

پاسخ در 1395/08/22 توسط
2

سلام دوست عزیز تا اونجایی که من می دونم شما می تونید توسط یک اتصال TCP یا UDP در یک شبکه اطلاعات بفرستید و دریافت کنید که نیاز به چند اتصال و این قطعه کد داره :(TCP)

سرویس دهنده
using System; 
using System.IO; 
using System.Net.Sockets; 

TcpListener listener = new TcpListener ( 8080 ); listener.Start (); 
 Socket s = listener.AcceptSocket (); 
NetworkStream  ns = new NetworkStream ( s );
StreamReader r = new StreamReader ( ns );// می تونید خط به خط مورد ارسال شده را بخونید 


string result = "heloo";
Byte[] res = System.Text.Encoding.ASCII.GetBytes ( result.ToCharArray () ); 
 s.Send ( res, res.Length, 0 );//اطلاعات را ارسال کنید 



حال بر اساس نیاز خود result را مقدار دهی کنید .

شما برای اینکه result را به عنوان یک عکس ارسال کنید باید فایل عکس را به کد های باینری تبدیل کنید و بفرستید.

این قطعه کد:

FileStream From = new FileStream("C:\...",FileMode.Open);
FileStream To = new FileStream("C:\...",FileMode.CreateNew);
byte[] buffer = new byte[1024]; 

 System.IO.BinaryReader Reader = new System.IO.BinaryReader(From);//فایل منبع  
 int NumRead;
 NumRead = Reader.Read(buffer, 0, 1024);                          

System.IO.BinaryWriter Writer = new System.IO.BinaryWriter(To);  //فایل مقصد               Writer.Write(buffer, 0, NumRead);

حال بسته به نیاز خودتون می تونید عکس را ارسال کنید.

پاسخ در 1395/08/22 توسط
2

توجه داشته باشید که کد TCP را اگه بخوایید در ویندوز فرم استفاده کنید باید کد های ارسال و دریافت را کلاس بندی کنید و بعد با یک فایل dll در ویندوز فرم ارتباطش دهید

پاسخ در 1395/08/22 توسط
0

سلام

راستش مهندس منم هینطور فکر میکردم ولی برام جالب بود که اصلاً مطلبی راجع به ارسال تصویر به این روش پیدا نکردم. در هر صورت ممنون... تست میکنم ببینم جوابگو هست یا نه.

پاسخ در 1395/08/22 توسط
0

پیشنهاد میکنم اطلاعات رو به صورت JSON تبدیل کنید و به صورت Binary تحت شبکه ارسال کنید، بعد در سمت Client می تونید براحتی اطلاعات ارسال شده رو Deserialize و تبدیل به شئ کنید.

پاسخ در 1395/08/22 توسط

پاسخ شما