نمایش نتایج 1 تا 5 از 5

نام تاپیک: ارسال متوالی از طریق یک پورت کامپیوتر

  1. #1
    کاربر دائمی آواتار relax_cp
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    مشهد مقدس
    پست
    216

    Question ارسال متوالی از طریق یک پورت کامپیوتر

    با سلام به همگی عزیزان
    من دنبال کدی هستم که بتونم توسط اون یک سرور و یک کلاینت درست کنم به صورتی که بعد از اجرای برنامه سرور و باز کردن یک پورت و یک آی پی از سیستم برنامه های کلاینت بتونن تا زمانی که برنامه اجرا هست به اون پورت و اون آی پی تکست ارسال کنند و مشکلی پیش نیاد.
    توی این سایت شاید بالای 10 یا 15 صفحه باز کردم ولی همگی اونها یک مشکلی داشت و اونم این بود که بعد از ارسال متن اول از طریق کلاینت و پذیرش اون از طریق سرور ، سرور دیگه هیچ متنی رو از روی پورت گوش نمیداد و نمیتونست ورودی ها رو بگیره.

    اگه کسی میتونه یک کد تست شده بذاره یا اینکه همین کد رو مرتب کنید.
    بدلیل عدم آپلود فایل ضمیمه توسط سایت من لینک مستقیم رو میگذارم :
    http://up.iranblog.com/images/jkyd77hnw9en17x3jazb.rar
    این لینک مستقیم برای دانلود نمونه برنامه هست. برنامه احتیاج به ارسال فقط از سمت کلاینت داره همین و بس
    ممنون

  2. #2

    نقل قول: ارسال متوالی از طریق یک پورت کامپیوتر

    من نفهمیدم مشکل شما کجاست و اصلا مشکل چی هست!!
    توی سایت انواع و اقسام برنامه چت گذاشته شده ، اکثر اونها کاری که شما میخواید رو انجام میدن (ارسال مداوم اطلاعات از کلاینت به سرور) ، به نمونه زیر یه نگاه بندازید.
    https://barnamenevis.org/showthread.php?t=260525

  3. #3
    کاربر دائمی آواتار relax_cp
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    مشهد مقدس
    پست
    216

    نقل قول: ارسال متوالی از طریق یک پورت کامپیوتر

    ممنون این رو هم دیدم و دانلود کردم ولی مشکلم اینه که برنامه شما اجرا نمیشه روی سیستم.
    الان توی همین کدی که گذاشتم میخوام این کار انجام بشه که برنامه کلاینت بتونه مرتب ارسال دیتا داشته باشه بصورت دستی و برنامه سرور هم دیتا رو بگیره و توی یک ریچ تکست باکس نشونشون بده. هیچ پیامی یا متنی هم نمیخوام که سرور به کلاینت ارسال کنه . این برنامه ای که گذاشتم یک بار این کار رو انجام میده ولی در دفعات بعدی سرور دیگه چیزی رو دریافت نمیکنه عزیزم مشکل همینجاست که فقط یک بار دیتا میگیره بعد دیگه نمیگیره.
    اگه لینکی دارید و نمیشه اینجا گذاشت لطف کنید برام نامه خصوصی بزنید واقعا شدید درگیرشم.

  4. #4

    نقل قول: ارسال متوالی از طریق یک پورت کامپیوتر

    ممنون این رو هم دیدم و دانلود کردم ولی مشکلم اینه که برنامه شما اجرا نمیشه روی سیستم.
    یعنی چی اجرا نمیشه؟ خطا میده؟ باگ داره؟ کار نمیکنه؟ برای کار با برنامه ابتدا برنامه سرور و بعد برنامه کلاینت رو اجرا کنید. در برنامه کلاینت روی Set Server کلیک کنید و IP کامپیوتری که برنامه سرور روی اون اجرا شده رو بدید (در صورتی که برنامه سرور هم روی سیستم خودتون اجرا شده IP رو 127.0.0.1 بدید). بعد از این کار روی Sign Up کلیک کنید و یک یوزر اضافه کنید. الان دیگه میتونید از برنامه استفاده کنید.
    شما کدهای دریافت اطلاعات در سرور رو باید توی یک حلقه بینهایت قرار بدید. برنامه سرور خودتون رو به 2 روش اصلاح کردم یه نگاه بهش بندازید.
    private void AcceptCallback(IAsyncResult ar)
    {
    Socket temp = ((Socket)ar.AsyncState);
    Socket worker = temp.EndAccept(ar);
    while (true)
    {
    try
    {
    int bytesReceived = worker.Receive(buffer);
    string str = System.Text.UTF8Encoding.UTF8.GetString(buffer, 0, bytesReceived);
    richTextBox1.Text += str + "\n";
    }
    catch { break; }
    }
    //AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
    //worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMethod), worker);
    }

    private void ReceiveCallBack(IAsyncResult ar)
    {
    try
    {
    Socket worker = ((Socket)ar.AsyncState);
    int bytesReceived = worker.EndReceive(ar);
    AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
    worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMethod), worker);
    string str = System.Text.UTF8Encoding.UTF8.GetString(buffer, 0, bytesReceived);
    richTextBox1.Text += str + "\n";
    }
    catch { }
    }

  5. #5
    کاربر دائمی آواتار relax_cp
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    مشهد مقدس
    پست
    216

    نقل قول: ارسال متوالی از طریق یک پورت کامپیوتر

    واقعا ازت ممنون رفیق
    فعلا مشکلم حل شد مشکلی که یک هفته درگیرش بودم
    با این اصلاحیه درست میشه. البته من این رو چک کردم و درست بود:
    private void AcceptCallback(IAsyncResult ar)
    {
    Socket temp = ((Socket)ar.AsyncState);
    Socket worker = temp.EndAccept(ar);
    // while (true)
    // {
    // try
    // {
    // int bytesReceived = worker.Receive(buffer);
    // string str = System.Text.UTF8Encoding.UTF8.GetString(buffer, 0, bytesReceived);
    // richTextBox1.Text += str + "\n";
    // }
    // catch { break; }
    // }
    AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
    worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMethod), worker);
    }

    private void ReceiveCallBack(IAsyncResult ar)
    {
    try
    {
    Socket worker = ((Socket)ar.AsyncState);
    int bytesReceived = worker.EndReceive(ar);
    AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
    worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMethod), worker);
    string str = System.Text.UTF8Encoding.UTF8.GetString(buffer, 0, bytesReceived);
    MessageBox.Show(str);
    }
    catch { }
    }


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •