ورود

نسخه کامل مشاهده نسخه کامل : ServerSocket و ClientSocket



nashanas2198
11-01-2008, 04:18
سلام و خسته نباشید.

از اساتید عزیز یک سوال داشتم.

چند وقت پیش من با توجه به نیاز شرکتمون که 4-5 تا سیستم داره و با همدیگه توسط یک سوئیچ شبکه هستند دو تا برنامه کوچولو با دلفی 6 نوشتم.

یکی از برنامه ها که از ServerSocket استفاده میکرد.
برنامه دیگری هم از ClientSocket استفاده میکرد.

در برنامه کلاینت با استفاده از تابع
socket.SendText
یک مقدار تکست رو برای برنامه سرور که روی سیستم دیگر بود ارسال می کردم.

در روی داد OnClientRead سوکت سرور هم با استفاده از دستور
socket.ReceiveText
متن ارسال شده از کلاینت رو دریافت و یک عملیات کوچولو روی رشته text انجام میشد و دوباره با استفاده از socket.SendText نتیجه پردازش به کلاینت ارسال میشد.

این برنامه همین اعلان هم داره به صورت کاملا عالی روی شبکه lan شرکت ما کار میده.(یک برنامه سرور و 4 تا برنامه کلاینت که سرور به راحتی پاسخ همشون رو میده)

و اما حالا مشکل من چیه ؟

آیا ما دقیقا از همین برنامه با هیمن سوکتها میتونیم توی اینترنت هم استفاده کنیم.(یعنی سرورمون رو روی یک سیستم خارج از شرکت بزاریم و بعد از طریق اینترنت باش ارتباط برقرار کنیم).

یا اینکه برای اون کار باید از کامپوننت های موجود در دلفی 7 مثل :

IdTCPServer و IdTCPClient
و یا
TcpServer و TcpClient استفاده کنم.

اصلا اینا چه فرقی اساسی با ServerSocket و ClientSocketموجود در دلفی 6 داره.
(ServerSocket و ClientSocket موجود در دلفی 6 که میگم ، منظورم همون 2 سوکتی هست که داخل دلفی 7 به صورت پیش فرض حذف شدن و باید خودمون جداگونه نصبشون کنیم.)

عکس هر 3 مدل سوکتی که درموردشون صحبت کردم رو در زیر میزارم که دوستان منظورم رو بهتر متوجه بشن.آخه خیلی خیلی به جواب این سوال ها احتیاج دارم.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تشکر.

F A R H A D
11-01-2008, 09:03
سلام دوست عزیز خوش آمدید

آیا ما دقیقا از همین برنامه با هیمن سوکتها میتونیم توی اینترنت هم استفاده کنیم.(یعنی سرورمون رو روی یک سیستم خارج از شرکت بزاریم و بعد از طریق اینترنت باش ارتباط برقرار کنیم)
اگر host شما ویندوز باشه و پورت مورد نیاز رو برای شما فعال کنه بله
اگر قرار هست که برنامه رو به دلفی7 بیارید و کامپایل کنید بهترین گزینه IdTCPServer و IdTCPClient هست. شاید به همین دلیل باشه که ServerSocket و ClientSocket جزء پیش فرضهای دلفی 7 نیست

nashanas2198
11-01-2008, 14:18
اگر host شما ویندوز باشه و پورت مورد نیاز رو برای شما فعال کنه بله
اگر قرار هست که برنامه رو به دلفی7 بیارید و کامپایل کنید بهترین گزینه IdTCPServer و IdTCPClient هست. شاید به همین دلیل باشه که ServerSocket و ClientSocket جزء پیش فرضهای دلفی 7 نیست


متشکرم.بسیار عالی.
دست شما درد نکنه.پس هیچ مشکلی نخواهد بود فقط مثل اینکه باید سیستمی که در اینترنت قرار هست برنامه سرور روش اجرا بشه و پورت رو باز کنه ، باید دارای IP ولید (valid) باشه.

آیا کلاینت ها هم برای ارتباط با سرورمون نیاز به داشتن valid IP هستند.یا اینکه فقط سیستم سرور باید valid IP داشته باشه؟

امکان داره که ServerSocket و ClientSocket نتونن روی اینترنت جواب بدن و فقط برای شبکه LAN طراحی شده باشند؟

F A R H A D
12-01-2008, 08:25
مثل اینکه باید سیستمی که در اینترنت قرار هست برنامه سرور روش اجرا بشه و پورت رو باز کنه ، باید دارای IP ولید (valid) باشه
دقيقا

آیا کلاینت ها هم برای ارتباط با سرورمون نیاز به داشتن valid IP هستند.یا اینکه فقط سیستم سرور باید valid IP داشته باشه؟
خير نيازي به ip وليد براي كلاينتها نيست، چون ممكنه از يك شبكه local دسترسي صورت بگيره

امکان داره که ServerSocket و ClientSocket نتونن روی اینترنت جواب بدن و فقط برای شبکه LAN طراحی شده باشند؟
خير

nashanas2198
12-01-2008, 15:19
من از شما کمال تشکر رو میکنم.
دستتون درد نکنه.
پاسخ تمامی سوالاتم رو به صورت کاملا روشن و قاطعانه دادید.
ممنونم.

F A R H A D
13-01-2008, 08:22
خواهش ميكنم دوست عزيز. موفق باشي