PDA

View Full Version : مشکل اتصال در به ترتیب اجرا نشدن Client و Server



daniyal_1363
یک شنبه 18 بهمن 1388, 09:04 صبح
سلام
میخوام بدونم چه جوری میشه که وقتی من اول Server رو اجرا می کنم و بعد Clientرو ، Client و Server به هم وصل میشن ولی وقتی اول Client رو اجرا میکنم و بعد Server رو ، اتصال برقرار نمیشه

توضیحات برنامه :

* در برنامه از کامپونت WinSock استفاده میشه
* Ip سرور در کلاینت وارد میشه و این Ip ثابته (به پورت 363 متصل میشه)
* سرور Listen میکنه و کلاینت Connect میشه
* به خاطر احتمال عوض شدن Ip های کلاینت نمیشه از سرور Connect شد
* وقتی سرور و کلاینت روی یک سیستم اجرا میشه برنامه مشکلی نداره ولی رو دوتا سیستم جدا که اجرا بشه مشکل داره
* در ضمن من یک Timer رو کلاینت گذاشتم به این صورت:


If Label12.Caption = "Disconnect" Then
tcp.Close
Call tcp.Connect(ip1, "363")
Else
Timer3.Interval = 0
End If

ولی بازم اتصال برقرار نمیشه
label12 زمانی که اتصال برقرا میشه "Connect" میشه و وقتی اتصال قطع میشه "Disconnect" میشه

ممنون میشم کمکم کنین :افسرده::ناراحت:

daniyal_1363
دوشنبه 19 بهمن 1388, 14:23 عصر
آقا یکی بداد من برســــــــــــــــــــــ ــــــه:گریه::گریه::گریه::گر ه::گریه:


سلام
میخوام بدونم چه جوری میشه که وقتی من اول Server رو اجرا می کنم و بعد Clientرو ، Client و Server به هم وصل میشن ولی وقتی اول Client رو اجرا میکنم و بعد Server رو ، اتصال برقرار نمیشه

توضیحات برنامه :

* در برنامه از کامپونت WinSock استفاده میشه
* Ip سرور در کلاینت وارد میشه و این Ip ثابته (به پورت 363 متصل میشه)
* سرور Listen میکنه و کلاینت Connect میشه
* به خاطر احتمال عوض شدن Ip های کلاینت نمیشه از سرور Connect شد
* وقتی سرور و کلاینت روی یک سیستم اجرا میشه برنامه مشکلی نداره ولی رو دوتا سیستم جدا که اجرا بشه مشکل داره
* در ضمن من یک Timer رو کلاینت گذاشتم به این صورت:


If Label12.Caption = "Disconnect" Then
tcp.Close
Call tcp.Connect(ip1, "363")
Else
Timer3.Interval = 0
End If

ولی بازم اتصال برقرار نمیشه
label12 زمانی که اتصال برقرا میشه "Connect" میشه و وقتی اتصال قطع میشه "Disconnect" میشه

ممنون میشم کمکم کنین :افسرده::ناراحت:

مهران رسا
جمعه 21 اسفند 1388, 22:58 عصر
در کلاینت از دو Winsock استفاده کنید . اولی رو برای دریافت Request ها مامور کرده و توسط دومی اطلاعات رو دریافت کنید . مشکلتون حل خواهد شد .

daniyal_1363
دوشنبه 24 اسفند 1388, 18:58 عصر
از جوابی که دادی ممنون ولی من متوجه منظورت نشدم ، شاید باید بدونین که یک سرور داریم و چندین کلاینت وگرنه با یک کلاینت و یک سرور کار راحته
در سرور به ازای هر درخواستی که فرستاده میشه یک Winsock ساخته میشه
و هر کلاینت به Winsock مخصوص خودش وصل میشه
البته این مشکل مال زمانیه که خواسته باشیم از TCP/IP استفاده کنیم و من با گذاشتن تایمر بر رو سرور مشکل حل کردم
--------------------------------------------------------------------
ولی یه راه ساده تر هم پیدا کردم
میتونیم از طریق UDP اتصال بر قرار کنیم که نه احتیاج به چندین Winsock داره ، نه مشکل در به ترتیب اجرا شدن کلاینت و سرور و نه مشکل تغییر Ip ولی یه مشکل داره اونم اینکه در جابه جایی حجم بالای اطلاعات کم میاره و امنیت کمتری نسبت به TCP/IP داره که اونم زیاد مهم نیست چون قراره در شبکه داخلی ازش استفاده بشه