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

نام تاپیک: نحوه ارسال اطلاعات به روی پورت

  1. #1
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نحوه ارسال اطلاعات به روی پورت

    سلام
    چطور میشه با پورت ها ارتباط برقرار کرد - منظورم سوکت هست نه comport
    من خودم یکی نوشتم ارسال میکنه ولی دریافت نمی کنه

  2. #2

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    کدتون رو اینجا قرار بدید تا درباره اش بحث کنیم...

  3. #3

  4. #4
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    سلام
    خیلی ممنون قسمت ارسال رو من به این صورت نوشتم

            public string SendDataToServer(String message, Byte cid)
    {
    message = " " + message;
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
    data[0] = cid;
    stream.Write(data, 0, data.Length);
    while (!stream.DataAvailable) Application.DoEvents();
    if (stream.DataAvailable)
    {
    data = new Byte[256];
    String responseData = String.Empty;
    responseData = "";
    Int32 bytes = stream.Read(data, 0, data.Length);
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
    return responseData;
    }
    return "Time out";
    }



    دو تا تابع برای بازکردن و پستن پورت هم هست
    خوشبختانه کد من درست هستش و یک اشکال کوچیک داره و اون اینه که unicode رو به صورت علامت سوال ارسال می کنه و سرور بهش پاسخ نمیده
    قسمت سرور با دلفی نوشته شده و انتظار دریافت رشته widestring رو داره ( چون اطلاعات فارسی پردازش میشه )
    می خواستم ببینم widestring تو C#‎ معادلش چي میشه؟

  5. #5

  6. #6
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    اين خط رو
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);


    به صورت
    Byte[] data = System.Text.Encoding.Unicode.GetBytes(message);


    که می نویسم خالی ارسال میشه
    و اینجوی

    Byte[] data = System.Text.Encoding.UTF8.GetBytes(message);

    کاراکتر هایی دیگه ارسال میشه

  7. #7

  8. #8
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    این کار رو هم انجام میدم ولی به هر حال باید منتقل بشه و البته درست
    در حالت ASCII اگه لاتین باشه درست منتقل میشه ولی بقیه رو چک نکردم
    ولی به نظر من به خاطر تفاوت در Enciding رشته ها هستش

  9. #9

  10. #10
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    تعریف widestring در دلفي :
    WideString ~2^30 characters 4 bytes to 2GB Unicode characters; multi-user servers and multi-language applications

    با utf8 کلمه رسیدی؟ رو ميفرستم این در یافت میشه ط±ط³غŒط¯غŒطں


    تست کردم با utf8 لاتین درست ارسال میشه و درست دریافت میشه

  11. #11

  12. #12
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    نه اون ور بایت ها رو به صورت widestring لازم دارم
    در ضمن کد "ر" 1585 هستش ولی تو C#‎ به 1591 یعني "ط" تبدیل میشه

  13. #13

  14. #14
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: نحوه ارسال اطلاعات به روی پورت

    خوب فهمیدم
    utf-16 باید استفاده کنم اختلاف کم بودش مثلا 1585 رو به صورت 45 و 6 ارسال میشه که 6*256+45=1585
    یه کانورت می خواد و تشخیص اینکه کلاینت متصل شده کنونی C#‎ هست یا دلفی چون با دلفی درست کار میکنه
    ممنون bermooda

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

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