PDA

View Full Version : در خواست سرویس تحت شبکه



msh_gold
جمعه 06 اردیبهشت 1387, 08:38 صبح
سلام من یک پروژه تحت شبکه دارم .به این طریق که یک سرویس از کلاینت به سمت سرور بفرستم .می خواستم بدونم که چطوری با ip ها کار کنم.البته من winsockآقای amirsajjadiرو دانلود کردم می خواستم بدونم چطوری با هاش کار کنم.جا داره از تمامی کسانی که در این سایت زحمت می کشند تشکر کنم.

amirsajjadi
جمعه 06 اردیبهشت 1387, 14:17 عصر
با سلام

سرور :

جهت اتصال به کلاینت :
Const Port_Number AsInteger = 2000
Winsock1.Listen(Port_Number)


بعد از وصل شدن به کلاینت یک درخواست از طرف کلاینت برای شما میاد که با استفاده از رویداد ConnectionRequest باید به اون درخواست به این صورت پاسخ بدید :
If e.ClientIP = "bad IP"Then
'Error
e.Cancel = True
Else
Winsock1.Accept(e.Client)
EndIf


بعد از اینکه اتصال انجام شد رویداد Connected فراخوانی میشه
وقتی از طرف کلاینت اطلاعاتی ارسال میشه رویدادDataArrival فراخوانی میشه و شما میتونید به این صورت اطلاعات رو دریافت کنید :
Dim s AsStringWinsock1.Get(s)
یا
Winsock1.GetFile ("Adress File")


جهت فرستادن اطلاعات به کلاینت :
Dim Inf AsString = "Hello !"
Winsock1.Send(Inf)


وقتی ارتباط بین کلاینت و سرور قطع بشه رویداد Disconnected فراخوانی میشه
شما در آخر (مثلا در رویداد Form_Closing) باید پورت رو آزاد کنید به این صورت :

Winsock1.Close()


کلاینت :

جهت اتصال به سرور :
Const Port_Number AsInteger = 2000
Winsock1.Connect("IP or NAME server", Port_Number)


تمام رویدادهای بالا (سرور) برای کلاینت هم اجرا میشن فقط دیگه نیازی به کدنویسی رویداد ConnectionRequest نیست--------------------------------------------------------
در صورت بروز خطا رویداد ErrorReceived اجرا میشه
وقتی که فایل در حال فرستادن هست رویداد SendProgress اجرا میشه
وقتی فایل با موفقیت ارسال شد رویداد SendComplete اجرا میشه
وقتی که وضعیت ناگهان تغییر کرد (پورت بسته شد یا اتصال قطع شد) رویداد StateChanged اجرا میشه