امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت برنامه کلاینت سروری
نویسنده پیام
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #1
ساخت برنامه کلاینت سروری
سلام.
برای نوشتن برنامه کلاینت سروری باید چه کامپوننتی رو اضافه کنم؟
تو ویبی وینساک بود ولی تو 2005 C# پیداش نکردم.
کلا روش نوشتن برنامه کلاینت سروری رو تو C# اگه میشه توضیح بدید. اینکه چه تابع هایی باید بنویسم یا از چه ایونت هایی استفاده کنم.
سرچ کردم به این نتیجه رسیدم که از System.Net.Sockets استفاده کنم. ولی توضیح در مورد روش کار میخوام.
ممنون میشم کمکم کنید.
(آخرین ویرایش در این ارسال: ۰۸-آذر-۱۳۸۶, ۲۲:۵۷:۰۴، توسط Payman62.)
۰۸-آذر-۱۳۸۶, ۲۲:۲۶:۲۴
ارسال‌ها
پاسخ
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #2
RE: ساخت برنامه کلاینت سروری
مقالات دنبال کن به اونم میرسیم .
فعلا .net remoting تو ذهنت باشه تا یه مقاله جامع دربارش بنویسم .
اگه میتونی بیا بشو کاربر فعال بخش c#

هر چی روش خوبه توش خوب نیست!
۱۰-آذر-۱۳۸۶, ۱۳:۲۰:۳۳
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #3
RE: ساخت برنامه کلاینت سروری
سلام.
آخه من عجله دارم.
چشم سعی میکنم بیشتر در این بخش فعالیت کنم.
۱۱-آذر-۱۳۸۶, ۰۳:۴۵:۱۷
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #4
RE: ساخت برنامه کلاینت سروری
اول اینکه زبان #C با زبان وی بی 6 خیلی متفاوته !
توی این زبان همه چیز توی کلاس تعریف میشه و خوب اون کلاس های مربوطه هم کلاس های دات نت هستند . اینجا برای معمولا مفاهیم شی گرایی پیش میاد که باید باهاش آشنا باشی و گرنه برنامه نویسی توی محیط شی گرا برات نامفهوم میشه . دوم اینکه دات نت کلاس های شبکه با سطوح مختلفی رو ارائه میکنه . بستگی داره شما در چه سطحی از شبکه میخوای کار کنی . برای کار معمولی و چیزی شبیه به همون سوکت های وی بی مثال زیر خوبه :

http://www.ondotnet.com/pub/a/dotnet/200...ockets.htm

البته remoting برای کارهای پیچیده مثل RPC هست . اگر کار ساده ای دارین بهتره از همون کلاس های سوکت استفاده کنی .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۱۲-آذر-۱۳۸۶, ۱۵:۳۵:۱۲، توسط Mamad2003.)
۱۱-آذر-۱۳۸۶, ۱۸:۴۳:۱۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #5
RE: ساخت برنامه کلاینت سروری
سلام ممد جان. چطوری؟
درسته میدونم ویبی خیلی با C# فرق داره. کتابشو خوندم. چند تام pdf دانلود کردم نصفه نیمه خوندم. ولی هنوز به طور حرفه ای با C# کار نکردم.
یه سورس در این زمینه گرفتم که خوب کار میکنه. ولی با کنسول کار میکرد که به فرم تبدیلش کردم. منتها یه مشکلی وجود داره. من نتونستم یه تابع بنویسم که هر زمانی داده از طرف مقابل ارسال شد اینو ور برنامه به طور اتوماتیک داده رو دریافت کنه. مجبور بودم بعد از کانکت شدن بنویسم client.recive که این باعث قفل شدن فرم میشه. آیا تابعی وجود داره برای این کار که هر وقت داده ای از طرف مقابل ارسال شد خود به خود صدا زده بشه؟
۱۲-آذر-۱۳۸۶, ۱۳:۴۷:۴۷
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #6
RE: ساخت برنامه کلاینت سروری
بهتره از کلاس TcpListener استفاده کنی برای دریافت اطلاعات . اینهم نمونه کد :
کد:
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
  public static void Main()
  {
    TcpListener server=null;  
    try
    {
      // Set the TcpListener on port 13000.
      Int32 port = 13000;
      IPAddress localAddr = IPAddress.Parse("127.0.0.1");
      
      // TcpListener server = new TcpListener(port);
      server = new TcpListener(localAddr, port);

      // Start listening for client requests.
      server.Start();
        
      // Buffer for reading data
      Byte[] bytes = new Byte[256];
      String data = null;

      // Enter the listening loop.
      while(true)
      {
        Console.Write("Waiting for a connection... ");
        
        // Perform a blocking call to accept requests.
        // You could also user server.AcceptSocket() here.
        TcpClient client = server.AcceptTcpClient();            
        Console.WriteLine("Connected!");

        data = null;

        // Get a stream object for reading and writing
        NetworkStream stream = client.GetStream();

        int i;

        // Loop to receive all the data sent by the client.
        while((i = stream.Read(bytes, 0, bytes.Length))!=0)
        {  
          // Translate data bytes to a ASCII string.
          data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
          Console.WriteLine("Received: {0}", data);
      
          // Process the data sent by the client.
          data = data.ToUpper();

          byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

          // Send back a response.
          stream.Write(msg, 0, msg.Length);
          Console.WriteLine("Sent: {0}", data);            
        }
        
        // Shutdown and end connection
        client.Close();
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
       // Stop listening for new clients.
       server.Stop();
    }

      
    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
  }

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۲-آذر-۱۳۸۶, ۱۷:۵۷:۴۸
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #7
RE: ساخت برنامه کلاینت سروری
سلام.
ممد اینم همون طوریه که. اینم باعث قفل شدن فرم میشه. چون حلقه تموم نمیشه.
۱۲-آذر-۱۳۸۶, ۱۸:۳۵:۵۵
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #8
RE: ساخت برنامه کلاینت سروری
خب علتش اینه که نحوه کار با این کلاس از مدل synchronous هست . synchronous یعنی برنامه تا زمانی که دیتایی دریافت نکنه منتظر میمونه .
حالت دیگه دسترسی Asynchronous هست . لینک زیر برنامه سرور با روش Asynchronous رو نشون میده :

http://www.csharphelp.com/archives3/archive486.html

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۲-آذر-۱۳۸۶, ۲۰:۰۱:۵۶
ارسال‌ها
پاسخ
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #9
RE: ساخت برنامه کلاینت سروری
thread ها رو هم باهاش قاطی کنی خوشگل تر هم میشه .

هر چی روش خوبه توش خوب نیست!
۱۲-آذر-۱۳۸۶, ۲۲:۵۸:۱۱
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #10
RE: ساخت برنامه کلاینت سروری
سلام.
میشه از وینساک هم استفاده کرد. سرچ کردم و سورسی پیدا کردم که با وینساک کار کرده بود. به کار کردن با وینساک مسلطم. ولی خوب برنامم به یه فایل خارجی وابسته میشه. شما توصیه میکنید از وینساک استفاده کنم یا نه؟ خودم تمایل دارم با کلاس های خود C# کار کنم.
۱۳-آذر-۱۳۸۶, ۱۳:۲۵:۴۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #11
RE: ساخت برنامه کلاینت سروری
سلام.
ممد اون برنامه که گذاشتی error میده.
این using ها رو اضافه کردم. بعضی از ارور هاش رفع شد ولی بازم ارور میده.
using System.Collections;
using System.Net;
using System.Net.Sockets;
using System.Threading;
۱۳-آذر-۱۳۸۶, ۲۲:۳۶:۱۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کار با دیتابیس کلاینت ها در وبسایتasp.net taksa2012 6 4,749 ۲۵-اسفند-۱۳۹۴, ۲۰:۴۸:۵۱
آخرین ارسال: lord_viper
  ارسال درخواست کوئری به سرور توسط کلاینت ها taksa2012 1 2,578 ۰۲-آبان-۱۳۹۳, ۱۱:۳۹:۵۸
آخرین ارسال: lord_viper
  ساخت كد فعال سازي جهت برنامه doooste_2002 4 4,236 ۳۰-اردیبهشت-۱۳۹۲, ۱۷:۳۵:۴۶
آخرین ارسال: Ghoghnus
  ساخت برنامه نصب elec645 1 2,660 ۲۳-اسفند-۱۳۸۹, ۱۲:۰۱:۲۸
آخرین ارسال: سجاد ش
  ساخت help براي برنامه MZOSAN 0 2,555 ۲۷-آبان-۱۳۸۷, ۱۸:۲۴:۴۲
آخرین ارسال: MZOSAN

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 4 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS