PDA

View Full Version : کامپوننت TCP Client Indy و چندین ارتباط TCP همزمان



TrueFalse
پنج شنبه 31 فروردین 1385, 08:11 صبح
سلام دوستان
من میخوام یک برنامه کلاینت با کامپوننتهای Indy بنویسم که به صورت سرویس عمل کند و در فواصل زمانی مشخص یکسری ارتباط TCP با چند سرور برقرار کند ( مثل FireFox ) کسی میتونه در این مورد راهنمایی کنه

vcldeveloper
پنج شنبه 31 فروردین 1385, 09:45 صبح
من میخوام یک برنامه کلاینت با کامپوننتهای Indy بنویسم که به صورت سرویس عمل کند و در فواصل زمانی مشخص یکسری ارتباط TCP با چند سرور برقرار کند ( مثل FireFox ) کسی میتونه در این مورد راهنمایی کنه
شما که مشکلتون را نگفتید، چطور کسی می تونه بهتون کمک کنه؟!
هر جای کار که مشکل داشتید، مشکلتون را اینجا مطرح کنید.

mohammad_kerman65
سه شنبه 09 خرداد 1391, 16:50 عصر
با سلام و خسته نباشید.
من مبتدی هستم
مبخوام با استفاده از tcpclient و tcpserver بین 2 کامپیوتر ارتباط برقرار کنم یعنی فقط متن بفرستم اگه میشه به صورت واضح توضیح بدید.
ممنونم
بعد از میخوام indy رو یاد بگیرم ولی هیچی ازش نمیدونم.اگه توضیح دادن به این سوال ساده براتون سخته لطفا کتابی یا یه سایت که خوب توضیح داده باش رو معرفی کنید .

firststep
چهارشنبه 10 خرداد 1391, 14:15 عصر
سلام دوست عزیز چون مبتدی هستید عرض می کنم
بهتر اینه که اول توی قسمت مقالات - لیست مقالات نگاه بکنین اگر مورد دلخواه رو ( این زمینه و چه هر زمینه دیگر نیافتید ) جستجو کنید
بعد پست بزنید
این مورد رو کاملاً در مقالات توضیح داده شده است
این لینکشه
http://barnamenevis.org/showthread.php?t=52037

firststep
چهارشنبه 10 خرداد 1391, 14:16 عصر
سلام دوست عزیز چون مبتدی هستید عرض می کنم
بهتر اینه که اول توی قسمت مقالات - لیست مقالات نگاه بکنین اگر مورد دلخواه رو ( این زمینه و چه هر زمینه دیگر نیافتید ) جستجو کنید
بعد پست بزنید
این مورد رو کاملاً در مقالات توضیح داده شده است
این لینکشه
http://barnamenevis.org/showthread.php?t=52037

mohammad_kerman65
چهارشنبه 24 خرداد 1391, 08:26 صبح
سلام دوست عزیز چون مبتدی هستید عرض می کنم
بهتر اینه که اول توی قسمت مقالات - لیست مقالات نگاه بکنین اگر مورد دلخواه رو ( این زمینه و چه هر زمینه دیگر نیافتید ) جستجو کنید
بعد پست بزنید
این مورد رو کاملاً در مقالات توضیح داده شده است
این لینکشه
http://barnamenevis.org/showthread.php?t=52037
با سلام و خسته نباشید و تشکر از اینکه وقت گذاشتید و راهنمائیو کردید.
لطفا در برابر سوالات مبتدی من صعه صدر داشته باشید....
من این مقاله رو قبلا دیدم و خوندمش.ولی تنظیماتی که اینجا گفته رو نمیتونم پیدا کنم من با indy10کار میکنم.:ناراحت:
از طرفی وقتی یک idtcpserver میندازم تو صفحه میخوام برنامه رو اجرا کنم پیغام میده که نباید رویداد onexecute خالی باش.ولی در این مورد اصلا تو این مقاله توضیح نداده.
به امید روزی که من هم از حالت مبتدی درام...:چشمک:
میدونم توضیح دادن با این همه جزئیات سخته براتون.اگه بشه 1 برنامه ساده فقط برای ارتباط بین 2 سیستم که بتونند متن واسه هم بفرستن بذارید ممنون میشم.ضمنا این 2 کامپیوتر تحت 1 شبکه ی محلی هستند.

Mask
چهارشنبه 24 خرداد 1391, 10:19 صبح
اون توضیحاتی که در اون پست هست مربوط به پکیج indy ورژن 9 هست.
در نسخه های جدید دلفی ورژن این پکیج 10 شده با کلی تغییرات.
زمانی که شما یه کامپوننت TcpServer بر روی فرمتون میزارید حتما باید ایونت onexecute مقدار داشته باشه.
میتونید 2 تا اسلش بزارید تا این ایونت به صورت ظاهری پر بشه و برنامه run بشه.
اما داستان از این قراره : زمانی که شما از این کامپوننت استفاده میکنید : علتش چیه؟
علتش اینه که این کامپوننت به شما سرویس بده . یعنی در همون ایونت قراره متنی رو که TcpClient میفرسته رو بخونید.
پس این ایونت ، همیشه باید مقدار داشته باشه.
از ضمیمه زیر میتونید یه برنامه کلاینت سرور رو که فقط متن ارسال ودریافت میکنند رو ببینید و ازش استفاده کنید.

mohammad_kerman65
چهارشنبه 24 خرداد 1391, 12:08 عصر
سلام goldعزیز
ممنون بسیار عالی بود استفاده کردم.
1سوال؟ بعضی جاها میبینم که از idantifreese استفاده میکنند.میشه یه توضیح مختصر بدید واسه چیه؟
با تشکر

mohsen24000
چهارشنبه 24 خرداد 1391, 12:32 عصر
واسه فریز نشدن یا بعبارتی هنگ نکردن برنامه هنگام رد و بدل کردن داده هاست...!

Mask
چهارشنبه 24 خرداد 1391, 13:11 عصر
این کامپوننت وظیفش این هست که ، چک میکنه اگه کامپوننتی از پکیج indy استفاده کرده ، به خاطر اینکه برنامه قفل نکنه، اون روال رو اتوماتیک در تردی دیگه فراخوانی میکنه.

mohammad_kerman65
جمعه 26 خرداد 1391, 11:23 صبح
با تشکر از همه دوستانی که راهنمائی فرمودند.:چشمک:

mohammad_kerman65
شنبه 27 خرداد 1391, 09:51 صبح
با سلام وخسته نباشید.
با کمک راهنمائی دوستان تونستم مشکلم حل کنم.اگه لطف کنید جواب این سوالم بدید ممنون میشم.
من 1 سرور دارم و چند کلاینت که فقط پیام بینشون ردوبدل میشه.چطر میشه فهمید کدام کلاینت برای سرور پیام فرستاده مثلا داخل memoدر سرور اول اسم کلاینت بیاید بعد پیامش؟
با تشکر

mohsen24000
شنبه 27 خرداد 1391, 10:12 صبح
از روی آی پی کلاینت...

mohammad_kerman65
شنبه 27 خرداد 1391, 10:15 صبح
خب توی سرور چطور ای پی کلاینت بدست بیارم؟؟؟

mohammad_kerman65
شنبه 27 خرداد 1391, 11:18 صبح
خب خدا رو شکر بدستش آوردم.:d
Acontext.Binding.PeerIp;

MOJTABAATEFEH
پنج شنبه 04 آبان 1391, 10:40 صبح
اون توضیحاتی که در اون پست هست مربوط به پکیج indy ورژن 9 هست.
در نسخه های جدید دلفی ورژن این پکیج 10 شده با کلی تغییرات.
زمانی که شما یه کامپوننت TcpServer بر روی فرمتون میزارید حتما باید ایونت onexecute مقدار داشته باشه.
میتونید 2 تا اسلش بزارید تا این ایونت به صورت ظاهری پر بشه و برنامه run بشه.
اما داستان از این قراره : زمانی که شما از این کامپوننت استفاده میکنید : علتش چیه؟
علتش اینه که این کامپوننت به شما سرویس بده . یعنی در همون ایونت قراره متنی رو که TcpClient میفرسته رو بخونید.
پس این ایونت ، همیشه باید مقدار داشته باشه.
از ضمیمه زیر میتونید یه برنامه کلاینت سرور رو که فقط متن ارسال ودریافت میکنند رو ببینید و ازش استفاده کنید.

ممنون دوست عزیز بابت نمونه کدی که قرار دادین لطفا اگر امکان داره توضیحاتی راجع به تغییرات Readbuffer و Writebuffer بدین چند جایی مطالبی راجع به این قضیه دیدم و بکار بردم اما نتیجه ای حاصل نشد

با تشکر