ورود

View Full Version : سوال: انتقال متن بین دو سیستم



alireza661
جمعه 04 فروردین 1391, 02:56 صبح
با سلام خدمت اساتید
من میخوام یک برنامه client و یک برنامه server بنویسم بدین صورت که دوست من که در شهر دیگری زندگی میکنه برنامه client رو اجرا کنه و به اینترنت متصل بشه
منم از این طرف به اینترنت وصل بشم و برنامه server رو اجرا کنم
حالا باید چکار کنیم تا هر متنی رو که من در تکس باکس مینویسم با زدن یک دکمه در برنامه کلاینت دوستم همون متن با مسیج باکس نشون داده بشه و بالعکس؟
آیا با winsock راهی هست؟
این نکته رو هم در نظر بگیرید که هیچ کدوم از دو کامپیوتر آی پی ولید ندارن
ممنون میشم راهنمایی بفرمایید
با تشکر

AbbasVB
جمعه 04 فروردین 1391, 11:21 صبح
باسلام
این جاها رو یه سری بزن
لینک1 (http://barnamenevis.org/showthread.php?2563-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-Winsock&highlight=UDPProtocol)
لینک2 (http://barnamenevis.org/showthread.php?241368-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-WinSock-%D9%82%D8%B3%D9%85%D8%AA-1-2&highlight=UDPProtocol)
لینک3 (http://barnamenevis.org/showthread.php?325807-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D8%A7-%D9%88%DB%8C%D9%86%D8%B3%D9%88%DA%A9&highlight=%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA+%D8 %B3%D8%B1%D9%88%D8%B1+%D8%A8%D8%A7+%D9%88%DB%8C%D9 %86%D8%B3%D9%88%DA%A9)
لینک4 (http://barnamenevis.org/showthread.php?309583-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%BE%DB%8C%D8%A7%D9%85-%D8%A7%D8%B2-%DB%8C%DA%A9%DB%8C-%D8%A7%D8%B2-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA%D9%87%D8%A7%D B%8C-%D9%85%D8%AA%D8%B5%D9%84-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1&highlight=%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA+%D8 %B3%D8%B1%D9%88%D8%B1+%D8%A8%D8%A7+%D9%88%DB%8C%D9 %86%D8%B3%D9%88%DA%A9)
لینک5 (http://barnamenevis.org/barnamenevis.org/showthread.php?168037-%C3%98%C2%A8%C3%98%C2%B1%C3%99%C2%86%C3%98%C2%A7%C 3%99%C2%85%C3%99%C2%87-%C3%9A%C2%86%C3%98%C2%AA-%C3%98%C2%A8%C3%98%C2%A7-%C3%9A%C2%A9%C3%99%C2%86%C3%98%C2%AA%C3%98%C2%B1%C 3%99%C2%84-%C3%99%C2%88%C3%9B%C2%8C%C3%99%C2%86%C3%98%C2%B3%C 3%99%C2%88%C3%9A%C2%A9-winsock&highlight=%C3%9A%C2%A9%C3%99%C2%84%C3%98%C2%A7%C3% 9B%C2%8C%C3%99%C2%86%C3%98%C2%AA+%C3%98%C2%B3%C3%9 8%C2%B1%C3%99%C2%88%C3%98%C2%B1+%C3%98%C2%A8%C3%98 %C2%A7+%C3%99%C2%88%C3%9B%C2%8C%C3%99%C2%86%C3%98% C2%B3%C3%99%C2%88%C3%9A%C2%A9)
لینک6 (http://barnamenevis.org/showthread.php?184465-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%DA%86%D8%AA-%D8%AA%D8%AD%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87&highlight=%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA+%D8 %B3%D8%B1%D9%88%D8%B1+%D8%A8%D8%A7+%D9%88%DB%8C%D9 %86%D8%B3%D9%88%DA%A9)

alireza661
جمعه 04 فروردین 1391, 13:04 عصر
مرسی از شما ولی در این تاپیک ها که شما گفتید طریقه ارتباط در شبکه های محلی رو توضیح دادن
من میخوام با اینترنت ارتباط برقرار کنم

AbbasVB
جمعه 04 فروردین 1391, 13:49 عصر
برای برقراری ارتباط در محیط اینترنت باید از پروتکل Tcp/IP استفاده کنید این روش مزیتی که دارد این است که شما مطمئن هستید که با طرف مقابل مورد نظر وصل می شوید
ولی مشکلی که دارد این است که شما یا طرف مقابل باید آی پی شخص مورد نظر راداشته باشیددر ضمن TCP/IP رو من امتحان کردن در محیط اینتر نت برای چت به خوبی جواب می دهد

این نکته رو هم در نظر بگیرید که هیچ کدوم از دو کامپیوتر آی پی ولید ندارن
در این را بطه منظورتون رو متوجه نشدم

alireza661
جمعه 04 فروردین 1391, 14:06 عصر
یعنی پروتکل winsock رو برابر با tcp قرار بدم و بعد به دوستم بگم آی پی منو وارد کنه و منم آی پی اونو وارد کنم دیگه تمام؟
Local port رو لازم نیست تنظیم کنم؟

AbbasVB
جمعه 04 فروردین 1391, 14:13 عصر
یعنی پروتکل winsock رو برابر با tcp قرار بدم و بعد به دوستم بگم آی پی منو وارد کنه و منم آی پی اونو وارد کنم دیگه تمام؟
Local port رو لازم نیست تنظیم کنم؟
بله
البته باید یه مقدار کد برای اتصال و وپذیرش اتصال و ارسال اطلاعات و دریاقت آن با ید بنویسی در کل شاید 50 خط کد نشه اگه می خوای یه نمونه ساده برات بذارم؟

alireza661
جمعه 04 فروردین 1391, 14:31 عصر
کدهاشو بلدم میدونی ولی اگر نمونه ساده بذاری ممنون میشم
بعد یه سئوال
نمیشه با یک کامپوننت اول آی پی سیستم رو بدست بیاریم که دیگه نیازی نباشه آی پی هارو دستی وارد کنیم؟

AbbasVB
جمعه 04 فروردین 1391, 14:46 عصر
نمیشه با یک کامپوننت اول آی پی سیستم رو بدست بیاریم که دیگه نیازی نباشه آی پی هارو دستی وارد کنیم؟
فکر نکنم بشه من که تا حالا همچین چیزی ندیدم چون اگر طرف شما Dial Up باشه هر دفعه که به اینتر نت وصل میشه آی پیش تغییر می کنه
و اما نمونه خیلی ساده است ولی شما رو با طرز کار به طور کلی آشنا می کنه

دانلود (http://v-b-6.persiangig.com/Source/Chat.rar)

alireza661
جمعه 04 فروردین 1391, 14:51 عصر
خب پس سرور لازم نیست که آی پی رو وارد کنه؟
فقط کلاینت اونجا که آی پی لوپ بکه 127.0.0.1 اونو تغییر بده و آی پی سیستم سرور رو وارد کنه درسته؟
بعد 661 چیه و از کجا باید بدست آوردش؟

AbbasVB
جمعه 04 فروردین 1391, 14:59 عصر
درسته
661 همان پورت اتصال هست که باید توی هر دو برنامه یکی باشد می تواند بین 1 تا 65535 باشد من فقط این رو از روی نام ماربری شما انتخاب کردم
آی پی 127.0.0.1 برای سیستم شماست که شما در سیستم خودتون با اون بتونید هر دو برنامه رو به هم وصل کنید
طرف مقابل شما باید آی پی شما رو وارد کنه (اگر نسخه سرور دست شما باشه)

alireza661
جمعه 04 فروردین 1391, 15:40 عصر
اما این برنامه جواب نمیده
من یک سیستم دیگه دارم
کلاینت رو بردم روی اون
آی پی خودم که 162.198.2.2 بود رو دادم بهش و زدم روی connect با همون 661 ولی پیغام اتصال برقرار شد رو نداد
مشکل از چیه؟

AbbasVB
جمعه 04 فروردین 1391, 17:23 عصر
مشکل از فایروال ویندوز و آنتی ویروس می باشد اگر آن ها را غیر فعال کنید مشکل بر طرف می شود

alireza661
جمعه 04 فروردین 1391, 17:28 عصر
فایروال هر دو سیستم غیر فعال است
چقدر طول میکشه با یک سرعت متوسط تا اتصال برقرار بشه؟

AbbasVB
جمعه 04 فروردین 1391, 17:37 عصر
نهایتا 1ثانیه

alireza661
جمعه 04 فروردین 1391, 18:42 عصر
متاسفانه با غیر فعال کردن آنتی ویروس هم مشکل حل نشد
ایراد از چیه؟

alireza661
جمعه 04 فروردین 1391, 21:05 عصر
آقا کسی نیست جواب مارو بده؟

just4froum
جمعه 04 فروردین 1391, 23:43 عصر
من فکر کنم بدونم مشکل از کجاست !!!

مشکل شما در بدست آوردن آی پی هست

نگاه کن اگر شما برید در سایت هایی مثل getip.com یا ip2location.com آی پی که به شما میده با این روش کار نمی کنه چون شما آدرس IPv4 رو باید وارد کنی تا کانکت شی .

وارد cmd شوید و تایپ کنید ipconfig و آی پی جلوی IPv4 address را در برنامتون وارد کنید.

راستی از این کد هم می تونید استفاده کنید.

msgbox winsock1.localip

alireza661
جمعه 04 فروردین 1391, 23:59 عصر
نه عزیزم منم از همون داس آدرس ipv4 رو وارد کردم
ولی مشکل پابرجاست

Mr'Jamshidy
شنبه 05 فروردین 1391, 00:49 صبح
ببین دوست من

من هم یک زمانی مشکل شما رو داشتم حس و حال حل کردنش رو هم نداشتم

بهت میگم اگر راه حل براش پیدا کردی بگو تا بقیه هم بتونن استفاده کنن

کنترل WinSock نمیتونه تحت اینترنت Listen کنه

تابع Listen فقط تو شبکه محلی جواب میده

البته این مشکل تو سوکت پروگرمینگ VB.NET حل شده اما خوب

موفق باشید

سید حمید حق پرست
شنبه 05 فروردین 1391, 04:21 صبح
سلام
من پارسال یه برنامه چت نوشتم که سرور و کلاین داره و اون موقع خوب جواب میداد ( البته با ای پی که سایتها میدادن کار میکرد ) امروز رفتم سراغش و امتحان کردم با یه دوستم و به هیچ وجه جواب نداد
و اتفاقی به ذهنم رسید کار زیر رو انجام دادم :
من سرور ویندوز دارم ( وی پی اس )
برنامه سرور رو بردم در سرور ویندوز و کلاینت در ویندوز خودم و اومدم ای پی سرور ویندوز رو ( که در سایت ها بدست هم میاد مثل getip.com و ip2location.com و ... ) در کلاینت ( که در ویندوز خودم هست ) وارد کردم و به خوبی اتصال یافت و متن میفرستاد و دریافت میکرد . نکته عجیب اینجاست که وقتی اینکارو برعکس انجام میدم ( برنامه سرور در ویندوز خودم اجرا کردم و کلاینت رو در سرور ویندوزم ) جواب نمیده نه با ipv4 و نه با ای پی که سایتها میدن
البته اینکار رو با این برنامه که دوستمون سورسشو لطف کردن انجام انجام دادم و جواب نداد

من کلا گیج شدم که این مشکل از چی هست و چطوری حل میشه

موفق باشید


یا علی (ع)

AbbasVB
شنبه 05 فروردین 1391, 10:59 صبح
کنترل WinSock نمیتونه تحت اینترنت Listen کنهسلام دوستان
آقای Mr'Jamshidy (http://barnamenevis.org/member.php?43330-Mr-Jamshidy)چرا نمیشه من همین چند شب پیش با آقای ‏بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C) با برنامه کلاینت سروری که خودم نوشتم امتحان کردم در اینترنت جواب داد و ما موفق به چت با آن شدیم
به این صورت که من آی پی خودم رو به کلاینت دادم و ایشان با رمزعبور و یوزر نیمی که من برای آن گذاشته بودم به سرور که سیستم من باشد وصل شد
برای دانلود بر نامه کلاینت سرور من به اینــــــــــجـــــــــــ ا مراجعه کنید
(http://www.programming-co.com/programming/programming-with-visualbasic/sourcecodevisualbasic/23-client-server-sourse.html)
آی پی خودم که 162.198.2.2 بود رو دادم بهش و زدم روی connect با همون 661 ولی پیغام اتصال برقرار شد رو ندادممکن است شما یا آی پی را اشتباه داده باشید یا تنظیمات Winsock1 را تغییر داده باشید مثلا پروتکل را به UDP تغییر داده باشید
در ضمن دوباره بگم که فایروال هر دو سیستم (سرور و کلاینت) و آنتی ویروس هر دو سیستم باید غیر فعال باشد

alireza661
یک شنبه 06 فروردین 1391, 11:59 صبح
با این تفاسیر به نظر شما راحت ترین راه برای انتقال متن بین دو سیستم از طریق اینترنت چیست؟