PDA

View Full Version : POST و GET DATA



r0ot$harp
دوشنبه 04 شهریور 1387, 14:27 عصر
سلام دوستان

من می خوام با استفاده از Asp.net بتونم با Winsock کار کنم .

مثلا همچنین درخواستی رو چه جوری باید سند کنم و جوابش رو در Asp.Net دریافت کنم ؟ :




GET /KB/vb/winsock_revamped.aspx HTTP/1.1
Host: www.codeproject.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: cntid=106; df=90; mpp=25; noise=3; sort=Position; view=Quick; __utma=92062108.4571661860312212500.1219611116.121 9611116.1219657080.2; __utmz=92062108.1219657080.2.2.utmcsr=experts-exchange.com|utmccn=(referral)|utmcmd=referral|utm cct=/microsoft/development/.net/visual_studio_.net_2005/q_23230664.html; SessionGUID=530b485e-cfbe-4d44-a688-525d329bcd47; ASP.NET_SessionId=bj02lv45jjpxfvfvfi5fzk45; __utmc=92062108; ASPSESSIONIDCSBSBCSB=PICBLNDBDPJOLDFMIKKCINPJ



باتشکر احسان

r0ot$harp
پنج شنبه 07 شهریور 1387, 02:25 صبح
خواهش می کنم یکی به این سوال جواب بده .



باتشکر احسان

r0ot$harp
پنج شنبه 07 شهریور 1387, 23:32 عصر
یعنی خدا وکیلی هیچ کسی نیست چاره از مشکل ما بگشاید ؟ تورو خدا کمک کنید گیرم .



باتشکر احسان

Behrouz_Rad
جمعه 08 شهریور 1387, 08:18 صبح
اگر بتونی از طریق سرور با پورت ها (پورت 80) کار کنی که هر آنچه نیاز داری در System.Net.Sockets وجود داره.
اون درخواست رو در یک String قرار میدی و با متد BeginSend شی ایجاد شده از کلاس Socket اون رو به صورت نامتقارن می فرستی. البته سعی کن شیطونی نکنی ;)
نمونه ی استفاده از Socket زیاده. در گوگل نتایج خوبی پیدا می کنی.

موفق باشید.

r0ot$harp
جمعه 08 شهریور 1387, 11:28 صبح
اگر بتونی از طریق سرور با پورت ها (پورت 80) کار کنی که هر آنچه نیاز داری در System.Net.Sockets وجود داره.
اون درخواست رو در یک String قرار میدی و با متد BeginSend شی ایجاد شده از کلاس Socket اون رو به صورت نامتقارن می فرستی. البته سعی کن شیطونی نکنی ;)
نمونه ی استفاده از Socket زیاده. در گوگل نتایج خوبی پیدا می کنی.

موفق باشید.

ممنون بهروز جان . من می خوام بدونم در مورد Connect شدن چه جوریه ؟ یعنی مثلا تو VB می زنی .
Winsock1.connect "google.com", 80

می خوام بدونم اینجا چه طوری همچین کاری باید کرد .

و سوال بدیم :

آیا می شه به پورت 5050 هم وصل شد ؟


باتشکر احسان

Behrouz_Rad
جمعه 08 شهریور 1387, 12:28 عصر
عرض کردم که شما اگر به مبحث Socket ها در دات نت علاقه داری خیلی راحت می تونی در گوگل در موردش اطلاعات کسب کنی.
در NET. یک شی از کلاس Socket ایجاد می کنی و در سازندش پارامترهای مورد نیاز از جمله IP و پورت رو مقدار دهی می کنی:


Dim ipHostInfo As IPHostEntry = Dns.GetHostEntry("www.yahoo.com")
Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)
Dim remoteEP As New IPEndPoint(ipAddress, 80)
Dim client As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
client.BeginConnect(remoteEP, New AsyncCallback(AddressOf ConnectCallback), client)

در کد فوق به صورت نامتقارن اتصال برقرار میشه و Thread اصلی برنامه می تونه به کارش ادامه بده.
البته این حالت بیشتر در برنامه های Windows کاربرد داره. در برنامه های وب "معمولاً" به جز در موارد خاص، از یک Thread بیشتر استفاده نمیشه چون مدیریت اینترفیس کاربر با چند Thread در وب حالت خوبی نداره.
در VB 6.0 کنترل WinSock روالی با نام DataArrival داره که داده های گرفته شده از طریق اون قابل دسترسی هستند. در NET. چون با کلاس کار می کنی و Component-based نیست، از مفهوم Callback ها در Multi-Threading استفاده میشه. هر وقت که اتصال با موفقیت انجام شد، روالی که در پارامتر دوم متد BeginConnect آورده شده اجرا میشه. مثلا در کد فوق روال با نام ConnectCallback معرفی شده. در اون روال متد EndConnect رو فراخونی می کنی و وقفه ای میفرستی تا برنامه متوجه بشه که اتصال پایان پذیرفته و باید مرحله ی بعدی که ارسال درخواست هست انجام بگیره. این وقفه با شی ای از نوع ManualResetEvent ارسال میشه و ...
این یک توضیح کلی بود. بقیه ی ماجرا رو با مطالعه و تحقیق متوجه میشی.


آیا می شه به پورت 5050 هم وصل شد ؟

Yahoo Messenger از پورت 5050 استفاده می کنه. اینکه به صورت مجزا بخوای ازش استفاده کنی که مشکلی نیست. پورت های آزاد زیادی در سیستم وجود دارن. اما اینکه در حین آنلاین بودن در !YM بشه رو نمی دونم. بررسی کن.

موفق باشید.