تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 2 اولاول 12
نمايش نتايج 11 به 14 از 14

نام تاپيک: IdTCPServer

  1. #11
    اگه نباشه جاش خالی می مونه MAR_Programmer's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    Ubuntu Desktop
    پست ها
    253

    پيش فرض

    اون رویداد همش یک پارامتر بیشتر نداره!! دیگه من چی رو توضیح بدم؟!
    اول اینکه Thread یه رویداد نبود بلکه یه خصوصیت بود از کلاس TIdPeerThread مثل همون پارامتر ارسال شده به رویداد OnConnect توی Id..Server و این کلاس یه عالمه خصوصیت و رویداد دیگه داره که خیلی از اونا به درد من نمی خوره

    از کجا فهمیدید که بهینه نیست؟! مکانیزم Indy با مکانیزم کنترل های دیگه فرق میکنه. Server شما فقط میتونه به درخواست های کلاینت ها پاسخ بده. اگر خودش بدون اینکه کلاینتی ازش چیزی خواسته باشه، بخواد به یک کلاینت پیامی بفرسته، این دیگه سرور نیست، بلکه خودش کلاینت هست! پس برای همچین اموری باید از IdTcpClient استفاده کرد و از IdTcpServer فقط برای امور مربوط به سرور. این روش غیربهینه ایی نیست، اتفاقا درست هم هست، اما چون بهش عادت ندارید، فکر می کنید که همونی که بهش عادت دارید درست هست!
    بهینه نیست چون خود من (چون تجربه کاری من توی این زمینه کمتره) باید این قسمت از برنامه رو بنویسم در ضمن دوست خوبمون توی تایپیک قبلی یه کامپوننت باحال گفت که هنوز امتحان نکردم ولی فکر می کنم جالب باشه

    اگر در مورد کامپوننت های Socket نظر خاصی داری خوشحال میشم بهم بگی در ضمن یه سوال هم برام پیش اومد
    اگر از SocketServer استفاده کنم تمام Socket های سیستم رو می تونم کنترل کنم منظور من اینه که Socket همون شماره Port توی Id..Server هستش دیگه نه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    بازم از توجهتون ممنون
    Last edited by MAR_Programmer; 11-05-2008 at 06:12. دليل: اشتباه در نقل قول

  2. #12
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2008
    پست ها
    161

    پيش فرض

    اول اینکه Thread یه رویداد نبود بلکه یه خصوصیت بود از کلاس TIdPeerThread مثل همون پارامتر ارسال شده به رویداد OnConnect توی Id..Server و این کلاس یه عالمه خصوصیت و رویداد دیگه داره که خیلی از اونا به درد من نمی خوره
    شما ظاهرا برداشت درستی از پارامتر، خصوصیت و... ندارید!
    پارامتر مقداری هست که به یک تابع یا متد پاس داده میشه. رویدادها در دلفی بصورت "متدی از یک شی" تعریف میشند. وقتی گفته میشه اون رویداد فقط یک پارامتر داره، یعنی فقط یک مقدار به آن پاس داده میشه. اون مقدار هم برای رویداد OnConnect پارامتر Thread از نوع TIdPeerThread هست.
    شما از من خواستید که پارامترهای آن را توضیح بدم، من هم گفتم فقط یک پارامتر داره.

    خصوصیت یا Property داده ایی هست که یک کلاس بر می گردونه. کلاس TIdPeerThread خصوصیات مختلفی داره که همگی در راهنمای Indy شرح داده شدند. اسمشون هم گویا کارشون هست.

    بهینه نیست چون خود من (چون تجربه کاری من توی این زمینه کمتره) باید این قسمت از برنامه رو بنویسم
    بهینه بودن این نیست که شما کدی ننویسید! بهینه بودن یک کد یعنی با کمترین منابع مورد نیاز سریعترین کد ممکن بدست بیاد. این کد باید منطق خوب و قابل فهمی هم داشته باشه. این که شما فکر می کنید اگر برای چیزی کد بنویسید، یعنی بهینه نیست؛ تفکری هست که از VB با خودتون به دلفی آوردید و بعدا شما را دچار مشکل میکنه.

    دوست خوبمون توی تایپیک قبلی یه کامپوننت باحال گفت که هنوز امتحان نکردم ولی فکر می کنم جالب باشه
    توسعه اون کامپوننت بعد از دلفی 6 متوقف شده و دارای باگ هایی هم هست. کلا اون کامپوننت دربرابر Indy حرفی برای گفتن نداشت، برای همین هم از نسخه 7 به بعد Indy جایگزین آن شد. البته برای شما که بهینه بودن مساوی هست با راحت طلبی، همون کامپوننت کفایت میکنه.
    بهتون پیشنهاد می کنم که سراغ دات نت و VB.Net برید. اونجا هم با شرایط VB بیشتر سازگار هست، هم اونقدر کلاس و کد آماده وجود داره که شما مجبور نباشید خودتون رو درگیر جزئیات فنی کنید.

  3. #13
    اگه نباشه جاش خالی می مونه MAR_Programmer's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    Ubuntu Desktop
    پست ها
    253

    6 با عرض پوزش

    شما ظاهرا برداشت درستی از پارامتر، خصوصیت و... ندارید!
    پارامتر مقداری هست که به یک تابع یا متد پاس داده میشه. رویدادها در دلفی بصورت "متدی از یک شی" تعریف میشند. وقتی گفته میشه اون رویداد فقط یک پارامتر داره، یعنی فقط یک مقدار به آن پاس داده میشه. اون مقدار هم برای رویداد OnConnect پارامتر Thread از نوع TIdPeerThread هست.
    شما از من خواستید که پارامترهای آن را توضیح بدم، من هم گفتم فقط یک پارامتر داره.
    متاسفانه من منظور خودم رو خوب بیان نکردم من کاملا می دونم که به یک پروسجور - function, Procedure - میشه هر نوع داده - Object, Record, Class, Data - رو فرستاد منظور من این بود که مثلا کلاس TStringList رو در نظر بگیرد این کلاس خصوصیتی داره به نام Count که تعداد خطوط (سطر های موجود در آن) رو نشون میده TStringList.Count می خواستم بدونم که پارامتر Thread یه همچین چیزی داره یا نه؟؟؟؟؟

    خصوصیت یا Property داده ایی هست که یک کلاس بر می گردونه. کلاس TIdPeerThread خصوصیات مختلفی داره که همگی در راهنمای Indy شرح داده شدند. اسمشون هم گویا کارشون هست.
    بازهم ببخشید من که چیز زیادی دستگیرم نشد که نشد، خیلی گشتم شاید Help دلفی من کامل نیست!!!! در هر صورت من که چیزی پیدا نکردم اما ممنون

    بهینه بودن این نیست که شما کدی ننویسید! بهینه بودن یک کد یعنی با کمترین منابع مورد نیاز سریعترین کد ممکن بدست بیاد. این کد باید منطق خوب و قابل فهمی هم داشته باشه. این که شما فکر می کنید اگر برای چیزی کد بنویسید، یعنی بهینه نیست؛ تفکری هست که از VB با خودتون به دلفی آوردید و بعدا شما را دچار مشکل میکنه.
    در مورد بهینه بودن منظور من هم اینه که اگه خود برنامه چنین حالتی رو به صورت پیش فرض داشته باشه هم کار من راحت تر میشه هم اینکه منابع و کد کمتری مصرف میشه در این مورد کاملا حق باشماست. اما در مورد VB شما از کجا فهمیدید یا نتیجه گرفتید که من قبلا VB کار بودم، چون اولا من هرگز با VB - یکم قبلا کار کردم - به صورت حرفه ای کار نکردم دوم اینکه من به شدت از VB منتفرم چراشم به خاطر اینکه خیلی سطح پایین بود - این به خاطر فعالیت های اولیه من روی اونه و بیشتر از اون هم جلو نرفتم چون بعدش با VC++ یهکم کار کردم و بعد با دلفی.

    توسعه اون کامپوننت بعد از دلفی 6 متوقف شده و دارای باگ هایی هم هست. کلا اون کامپوننت دربرابر Indy حرفی برای گفتن نداشت، برای همین هم از نسخه 7 به بعد Indy جایگزین آن شد. البته برای شما که بهینه بودن مساوی هست با راحت طلبی، همون کامپوننت کفایت میکنه.
    بهتون پیشنهاد می کنم که سراغ دات نت و VB.Net برید. اونجا هم با شرایط VB بیشتر سازگار هست، هم اونقدر کلاس و کد آماده وجود داره که شما مجبور نباشید خودتون رو درگیر جزئیات فنی کنید.
    در این مورد هم نظری ندارم چون باهاش زیاد کار نکردم و رفتم سر همون کار قبلی تقریبا بهینه شد و حالا با چندا حقله و چیزای دیگه درستش کردم - تا الان که خوب کار می کرد - در مورد این تایپیک هم من فکر می کنم اگر توضیح دیگه ای برای این آماتور نمانده بهتره که همینجا تمومش کنیم.
    بازم از اینکه وقت گذاشتی و جواب دادی خیلی خیلی ممنون
    یه چیز دیگه این شکلک های بقل متن کار نمی کنه چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    Last edited by MAR_Programmer; 14-05-2008 at 06:00. دليل: خطا در نقل قول

  4. #14
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2008
    پست ها
    161

    پيش فرض

    مثلا کلاس TStringList رو در نظر بگیرد این کلاس خصوصیتی داره به نام Count که تعداد خطوط (سطر های موجود در آن) رو نشون میده TStringList.Count می خواستم بدونم که پارامتر Thread یه همچین چیزی داره یا نه؟
    نه TIdPeerThread خودش خصوصیت Count نداره، چون معرف فقط یک Thread هست، نه لیستی از کلاینت های متصل شده به سرور. اگر می خواید لیستی از کلاینت های متصل شده به سرور داشته باشید، باید خودتون یک لیست درست کنید و هر زمان که کلاینتی به سرور متصل شد، در رویداد OnConnect سرور، پارامتر AThread را که از نوع TIdPeerThread هست، به لیست اضافه کنید، و هر زمان که کلاینتی از سرور جدا شد، در رویداد OnDisconnect سرور Thread آن کلاینت را از لیست حذف کنید. به این ترتیب، لیست شما شامل لیستی از Threadهای مرتبط با هر کلاینت میشه.
    هر کدام از این Thread ها از نوع TIdPeerThread هستند. این کلاس خصوصیتی داره به نام Connection که می تونید از طریق اون، هم نام کامپیوتر کلاینت را بدست بیارید، هم از طریق متدهای آن، مثل متد Write، برای کلاینت پیام ارسال کنید.

    من که چیز زیادی دستگیرم نشد که نشد، خیلی گشتم شاید Help دلفی من کامل نیست!!!! در هر صورت من که چیزی پیدا نکردم
    معمولا باز کردن Help دلفی و جستجو کردن در آن، به نتیجه مورد نظر نمیرسه. بهترین راه اینه که در Object Inspector روی رویداد OnConnect کلیک کنید و بعد کلید F1 را بزنید. این کار شما را مستقیما به صفحه راهنمای مربوط به رویداد OnConnect می برد. در اونجا TIdPeerThread بصورت لینک مشخص هست، با کلیک بر روی آن، به صفحه مربوط به کلاس TIdPeerThread میرید.

صفحه 2 از 2 اولاول 12

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •