View Full Version : ارتباط دو برنامه از طریق اینترنت(کمک کنید لطفا)
ali791
جمعه 13 اردیبهشت 1392, 21:59 عصر
سلام بر مهندسان عزیز
میخاستم بدونم میشه بین دو برنامه در دو کامپیوتر جدا از طریق اینترنت اطلاعاتی در حد چند تا عدد رد و بدل کرد؟ اگر یک طرفه هم باشه اشکالی نداره.لطفا راهنمایی کنید چون من در زمینه برنامه نویسی اطلاعاعاتم در این حدود نیست
:متفکر:
saeedhord
شنبه 14 اردیبهشت 1392, 02:23 صبح
ُسلام
برای این کار باید از winosk استفاده کنی . . ولی من کار باهاشو بلد نیسم یکم هم سخته .. اگه میخوای بینه 2 تا کامپیوتر ارتباط برقرار کنی میتونی از ocx یاهو استفاده کنی که خیلی راحت تره اگه خواستی بگو تا بهت بگم
موفق باشی :چشمک:
FastCode
شنبه 14 اردیبهشت 1392, 02:44 صبح
winosk اشتباهه.
winsock درسته.
فکر نمیکنم چیزی به اسم winosk وجود داشته باشه ولی osk مخفف On Screen Keyboard هست.
sock هم مخفف Socket
saeedhord
شنبه 14 اردیبهشت 1392, 02:53 صبح
winosk اشتباهه.
winsock درسته.
فکر نمیکنم چیزی به اسم winosk وجود داشته باشه ولی osk مخفف On Screen Keyboard هست.
sock هم مخفف Socket
نوکرتم غلط املایی میگیری ؟
FastCode
شنبه 14 اردیبهشت 1392, 09:45 صبح
نوکرتم غلط املایی میگیری ؟
آره
چون https://www.google.com/search?q=winosk هیچ نتیجه ای رو که مربوط باشه نمیاره.
Mohammad.sweets
شنبه 14 اردیبهشت 1392, 10:32 صبح
اینجا قرار نیست غلط املایی بگیریم که....
دوست عزیز میتونی با وینساک به راحتی اطلاعات رو بین دو تا کامپیوتر جا به جا کنی (کار سختی نیست)به این صورت که یکی از دو برنامه رو به عنوان سرور و دیگری رو به عنوان کلاینت در نظر میگیری...
بعد برای هر دو یک پورت در نظر میگیری مثل کد زیر:
این برای کلاینت>>ws.RemotePort = 1001
و این برای سرور>>Ws.LocalPort = 1001
بعد سرور باید به این پورت گوش بده ....>>Ws.Listen
باید IP سرور رو به کلاینت بدی>>ws.RemoteHost = "10.243.1.218"
بعد باید به سرور کانکت بشی>>ws.Connect
در اینجا سرور باید قبول کنه تا کلاینت به سرور متصل بشه>>
Private Sub Ws_ConnectionRequest(ByVal requestID As Long)
If Ws.State <> sckClosed Then Ws.Close
Ws.Accept requestID
End Sub
حالا کلاینت به سرور متصل شد...
با دستور زیر میتونی متن یا چیز دیگه ارسال کنی>>ws.SendData "Salam"
فرض بر این که کلاینت متن رو با دستور بالا ارسال کرد ....حالا با کد زیر این متن برای سرور نمایش داده میشه.>>
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
ws.GetData strData
Text1.Text = strData
End Sub
میتونی این کارو برای هر دو تا(سرور و کلاینت)انجام بدی تا هر دو تا هم متن بفرستند هم دریابت کنن..
برای خاتمه دادن از این دستور استفاده کن>>ws.Close
موفق باشی
FastCode
شنبه 14 اردیبهشت 1392, 10:48 صبح
اینجا قرار نیست غلط املایی بگیریم که....چرا همه تمام تلاششون رو برای نفهمیدن میکنن؟:عصبانی:
وقتی winosk هیچ نتیجه ای در گوگل نداره باید غلط املایی بگیریم.
Mohammad.sweets
شنبه 14 اردیبهشت 1392, 11:14 صبح
باشه حرف شما صحیح....به هر حال فک کنم توضیحاتم کامل بود امیدوارم کار دوستمون راه بیفته در ضمن بهتر بود به جای غلط املایی گرفتن به سوال پاسخ میدادی...
saeedhord
شنبه 14 اردیبهشت 1392, 14:21 عصر
اینجا قرار نیست غلط املایی بگیریم که....
دوست عزیز میتونی با وینساک به راحتی اطلاعات رو بین دو تا کامپیوتر جا به جا کنی (کار سختی نیست)به این صورت که یکی از دو برنامه رو به عنوان سرور و دیگری رو به عنوان کلاینت در نظر میگیری...
بعد برای هر دو یک پورت در نظر میگیری مثل کد زیر:
این برای کلاینت>>ws.RemotePort = 1001
و این برای سرور>>Ws.LocalPort = 1001
بعد سرور باید به این پورت گوش بده ....>>Ws.Listen
باید IP سرور رو به کلاینت بدی>>ws.RemoteHost = "10.243.1.218"
بعد باید به سرور کانکت بشی>>ws.Connect
در اینجا سرور باید قبول کنه تا کلاینت به سرور متصل بشه>>
Private Sub Ws_ConnectionRequest(ByVal requestID As Long)
If Ws.State <> sckClosed Then Ws.Close
Ws.Accept requestID
End Sub
حالا کلاینت به سرور متصل شد...
با دستور زیر میتونی متن یا چیز دیگه ارسال کنی>>ws.SendData "Salam"
فرض بر این که کلاینت متن رو با دستور بالا ارسال کرد ....حالا با کد زیر این متن برای سرور نمایش داده میشه.>>
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
ws.GetData strData
Text1.Text = strData
End Sub
میتونی این کارو برای هر دو تا(سرور و کلاینت)انجام بدی تا هر دو تا هم متن بفرستند هم دریابت کنن..
برای خاتمه دادن از این دستور استفاده کن>>ws.Close
موفق باشی
درود با تشکر میشه فایل ضمینه کنید .. یکم هم اگه میشه توضیح بدید دربارش من خیلی دوس دارم یاد بگیرم ... مقاله زیاد خوندم ولی سطحش بالاس ممنون
SlowCode
شنبه 14 اردیبهشت 1392, 15:27 عصر
چرا همه تمام تلاششون رو برای نفهمیدن میکنن؟:عصبانی:
وقتی winosk هیچ نتیجه ای در گوگل نداره باید غلط املایی بگیریم.
مهندس زیاد ناراحت نشو. به ما چه سواد گوگل کمه؟:لبخند:
راستی امروز چندتا پله بالا رفتی؟
باشه حرف شما صحیح....به هر حال فک کنم توضیحاتم کامل بود امیدوارم کار دوستمون راه بیفته در ضمن بهتر بود به جای غلط املایی گرفتن به سوال پاسخ میدادی...
خب شاید تخصصش وی بی نباشه! چیکارش داری؟:لبخند:
فکر کنم توضیحاتی که دوستمون دادن کافی بود.
شما کافیه یکم زحمت بکشی، نیازی به پروژه ی چیزی نیست، اگه بازم نمونه خواستی تو planet-source-code بگرد کلی مثال هست.
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&txtCriteria=winsock
FastCode
شنبه 14 اردیبهشت 1392, 16:02 عصر
خب شاید تخصصش وی بی نباشه! چیکارش داری؟:لبخند: خیلی وقت پیش ها VB کار میکردم.۶ سالی میشه که ترک کردم.
اصلا اون سوالت با مزه نبود.خوشم نیومد.
:)
نکته:اگر هر دو سیستم پشت NAT هستن بهتر هست که اول یک مقاله راجع به port punching بخونید.در عیب یابی خیلی کمکتون میکنه.
ali791
شنبه 14 اردیبهشت 1392, 21:35 عصر
از همه آقایون عزیز بخصوص آقا محمد کمال تشکر را دارم و لی این که میگین (حالا هر چی هست) اکتیوکسه,کده,
از کجا باید تهیه کرد و توی VB6 کار میده؟
خیلی ممنون
saber67
شنبه 14 اردیبهشت 1392, 22:10 عصر
WinSock یه کامپوننته که با خود VB نصب میشه و می تونی از مسیر زیر به برنامت اضافش کنی
Menu->Project->Componnets->Microsoft Winsock Control 6.0
اگه می خوای از بستر اینترنت برای ارسال اطلاعات استفاده کنی باید بگم که باید هر دو طرف (هر دو کامپیوتری که برنامه روشون اجرا میشه) باید IP معتبر و واقعی داشته باشند که در ایران کمتر کسی داره!
اما از طریق شبکه های محلی بین کامپیوترها به خوبی جواب میده
Mohammad.sweets
یک شنبه 15 اردیبهشت 1392, 16:14 عصر
سلام
1.لازم نیست هر دو تا (هم کلاینت و هم سرور)آی پی ولید داشته باشن...فقط سرور داشته باشه کافیه(که فکر کنم با یه ADSL کارت راه بیفته)
2.بهتره از وینساکی که با خود وی بی نصب میشه استفاده نکنی و نسخه ی جدیدشو دانلود کنی(براحتی میتونی تو گوگل پیدا کنی)
موفق باشی
ali791
شنبه 28 اردیبهشت 1392, 09:59 صبح
با سلام خدمت دوستان عزیز
یک سوالی داشتم: شماره پورت و آیپی را از کجا باید فهمید. آیپی مثل اینکه در هر بار اتصال به اینترنت تغییر میکنه درسته یا نه؟؟
FastCode
شنبه 28 اردیبهشت 1392, 11:14 صبح
این سوال یعنی راجع به port punch مطالعه نکردید.
من وقتی چیزی میگم حتما حتما دلیل دارم.
۹۹٪ کاربران به دلیل ترس از واژه های انگلیسی از روی پست های من رد میشن.
که باعث میشه من اینطوری پاسخ بدم.
خیلی جالبه پست های تنها کسی که توی این تاپیک CCNP هست بی توجه میمونه.
موفق باشید.
ali791
جمعه 03 خرداد 1392, 21:59 عصر
sسلام خدمت دوستان عزيز
اول از همه تشكر از آقاي fast code ببخشيد ديگه..... ما بي سواديم:ناراحت:
من از وينسوك در شبكه(بين دو كامپيوتر متصل به هم) جواب گرفتم حتي ميشه فايل هم منتقل كرد
ولي از طريق اينتر نت با چند تا آي پي امتحان كردم مثل اينكه نشد. كسي از دوستان اطمينان داره كه با اينتر نت هم ميشه. كسي جواب گرفته؟
يه سوال ديگه اينكه از مودم ديال آپ ميشه در برنامه استفاده كرد ، شماره گرفت ،ديتا ارسال و دريافت كرد؟
خيلي خيلي ممنون:لبخندساده:
FastCode
شنبه 04 خرداد 1392, 00:25 صبح
شما باید از TAPI استفاده کنید.
کنترل COM برای VB 6 هم داره
http://en.wikipedia.org/wiki/Telephony_Application_Programming_Interface
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.