PDA

View Full Version : مشکل عجیب با winsock



amin_vb
یک شنبه 09 اردیبهشت 1386, 20:32 عصر
سلام
خسته نباشید
من یه برنامه دارم که سروره . حالا می خام ازش با یک کلاینت اطلاعات بگیرم . این کدا رو گذاشتم :


Private Sub Form_Load()

Dim mIP As String

mIP = Winsock1.LocalIP
Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = mIP
Winsock1.RemotePort = 1245
Winsock1.Connect

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Winsock1.GetData strData, vbString
Text1.Text = strData

End Sub


Private Sub Command1_Click()
Winsock1.Close
End
End Sub


حالا وقتی برنامه رو می بندم سیستم انگار چند ثانیه میره تو کما ! دفعه ی دیگه که تو وی بی برنامه رو اجرا می کنم کلا" ویزوال بیسیک هنگ می کنه :عصبانی++:
بستن برنامه رو هم با کامند1 انجام میدم .

چی کارش کنم ؟ ایراد از کجای کاره ؟

mehran8
یک شنبه 09 اردیبهشت 1386, 20:37 عصر
به نظر من استفاده از کنترل winsock برای نوشتن تروجان (کلاینت و سرور ) اصلاً مناسب نیست .

amin_vb
یک شنبه 09 اردیبهشت 1386, 21:09 عصر
سلام
ممنون
ولی برای تروجان نیست که ...
یک برنامه دیگه هست روی همین سیستم که سورسش هم در دسترس نیست ! فقط باید از این طریق باهاش ارتباط برقرار کنم .
خودش هم پارامترهای کانکشن رو داده . و من هم می توانم با همون کدهای بالا پیامهای اون رو دریافت کنم . اما فقط موقع بستن ایراد داره .

CodeMasterX
یک شنبه 09 اردیبهشت 1386, 23:45 عصر
اولا که شما نباید برای برنامه سرور از متد Connect استفاده کنی!
باید روی یک پورت مخصوص Listen کنی!
روی ID من جستجو کن یه برنامه Client/Server نوشتن که هم میشه اطلاعات رشته ای فرستاد هم فایل ها رو.

amin_vb
دوشنبه 10 اردیبهشت 1386, 00:00 صبح
سلام
ممنون
ولی اگه توضیحات منو می خوندین می دیدین که من سرور نمی نویسم .
دارم کلاینت می نویسم .

amin_vb
دوشنبه 10 اردیبهشت 1386, 00:12 صبح
اون برنامتون رو هم دیدم .
از این نمونه ها زیاد دیدم قبلا" . حتی بدون اسفاده از کامپوننتهای اضافی .
اما فعلا" مشکل من چیز دیگه ییه .

as_200340
دوشنبه 10 اردیبهشت 1386, 03:28 صبح
سلام
خسته نباشید
من یه برنامه دارم که سروره . حالا می خام ازش با یک کلاینت اطلاعات بگیرم . این کدا رو گذاشتم :


Private Sub Form_Load()

Dim mIP As String

mIP = Winsock1.LocalIP
Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = mIP
Winsock1.RemotePort = 1245
Winsock1.Connect

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Winsock1.GetData strData, vbString
Text1.Text = strData

End Sub


Private Sub Command1_Click()
Winsock1.Close
End
End Sub


حالا وقتی برنامه رو می بندم سیستم انگار چند ثانیه میره تو کما ! دفعه ی دیگه که تو وی بی برنامه رو اجرا می کنم کلا" ویزوال بیسیک هنگ می کنه :عصبانی++:
بستن برنامه رو هم با کامند1 انجام میدم .

چی کارش کنم ؟ ایراد از کجای کاره ؟



سلام دوست عزیز
کد شما ایرادی نداره مشکل از سیستم شماست !
ببین فایروالی چیزی نداری .

CodeMasterX
دوشنبه 10 اردیبهشت 1386, 10:02 صبح
سلام
ممنون
ولی اگه توضیحات منو می خوندین می دیدین که من سرور نمی نویسم .
دارم کلاینت می نویسم .

ببینم شما وقتی میخوایی از یه کلاینت داده ها رو بگیری و توش مشکل هم داری داری سرور مینویسی یا کلاینت ؟ شما مثل اینکه هنوز معنی و فرق بین سرور و کلاینت رو هم نفهمیدی.اون برنامه که شما نوشتی و کاری که میخوایی بکمی مربوط به برنامه سرور میشه که گفتم برنامه من نمونه خوب و ساده ای هست بدون استفاده از کامپوننت های اضافی.
بعد از اون،مگه برنامه من جواب مشکلت رو نداد ؟ اصلا مشکل چیه ؟ اون دسوتر خودت هم از اول مشکل نداشت ولی شما توی پیاده سازی سرور ها و کلاینت ها مشکل داری.
برنامه من رو دقیق بررسی کن.

amin_vb
سه شنبه 11 اردیبهشت 1386, 00:26 صبح
ممنون عزیزان
مشکلم اینایی که میگین نیست .
هر دفعه مجبورم که به جای ران کردن برنامه ؛ فابل اگزشو بسازم و اجرا کنم.

CodeMasterX
چهارشنبه 12 اردیبهشت 1386, 03:23 صبح
شما برنامت رو کامل ضمیمه کن تا ببینیم مشکلش چیه اینجوری نمیشه!