ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 16
  1. #1
    osmanjan
    كاربر عادي
    http://up.vbiran.ir/images/rgk38wbh3cfxod62rhr2.gifhttp://up.vbiran.ir/images/qndtfn66fcrrq7cw6yh.gifhttp://up.vbiran.ir/images/qndtfn66fcrrq7cw6yh.gifhttp://up.vbiran.ir/images/qndtfn66fcrrq7cw6yh.gifhttp://up.vbiran.ir/images/qndtfn66fcrrq7cw6yh.gif
    تاریخ عضویت
    2011 Dec
    نوشته ها
    1
    0
    0

    Red face برنامه نویسی socket در vb.net

    اگه میشه یه نمونه برنامه آسون درباره برنامه نویسی ابزار اینترنت بذارید(winsock-internettransfer)
  2. #2
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    Socket Programing In Vb.net
    سلام
    در این مقاله کوتاه شما با ساختار بسیار ساده نوشت کد سمت سرور و کلاینت
    آشنا میشید.
    براي دریافت اطلاعات ما نیاز به یکسري کد در سمت سرور داریم و براي ارسال
    هم سمت کلاینت باید کد بنویسیم.
    ساختار کلی کد ها زیاد تفاوتی نداره در سمت کلاینت و سرور ولی خوب من ابتدا
    ساختار کلی پیاده سازي سمت سرور را توضیح میدم...
    در ابتدا کار براي کار کردن با کد هاي شبکه و سوکت باید کتابخانه شبکه رو در
    برنامه خودمون فراخوانی کنیم.
    کد:
     imports System.Net
    imports System.Net.Sockets
    که قرار ip 2 پارامتر هست که براي سرور مهم هست یکی نوع اتصال و دیگري
    هست که اون کانکت بشه در واقع ما به 2 متغیر اساسی نیاز داریم.
    که قرار هست به سرور متصل بشه رو مشخص میکنه هست ip اولین متغیر که
    که بصورت زیر تعریف میشه...
    کد:
     Dim نام متغیر As IPEndPoint=new IPEndPoint( (پورت مورد نظر ما ,آیپی موردننظر ما
    ساختار کلی بصورت چیزي بود که بالا نوشتم ولی یک مثال میزنم که واضح تر
    باشه...
    کد:
     Dim ipend As IPEndPoint=new IPEndPoint(IPAddress.Any,5050)
    که قرار هست متصل بشه رو ip تعیین کردي و ipend در اینجا ما نام متغیر رو
    که درخواست داد و براي پورت هم پورت 5050 ip محدود نکردیم و گفتیم هر
    رو انتخاب کردم...
    خوب با پارامتر اول آشنا شدیم میریم سراخ پارامتر بعدي که تعریف متغیر نوع
    سوکت هست که ما یک متغیر براي خود سرور باید بگذاریم و یک متغیر هم براي
    ارسال و دریافت اطلاعات تعریف و ساختار کلی بصورت زیر هست...
    Dim نام متغیر as Socket = new Socket( پروتکل مورد ,نوع سوکت ,محدوده آیپی ها
    (استفاده
    حالا یه مثال واسه واضح کردن میزنم...
    کد:
     Dim server as Socket = new Socket(ipend.AddressFamily,
    SocketType.Stream, ProtocolType.Tcp)
    تعریف کردیم رو مشخص ipendpoint خوب محدوده آدرس رو که در متغیر
    تعریف میکنیم چون براي دریافت و stream میکنیم و نوع سوکت رو از نوع
    tcp ارسال اطلاعات استفاده میکنیم و پروتکل مورد استفاده رو هم من از نوع
    انتخاب کردم(یا نوع اتصال گرا).
    خوب تا اینجا تعریف کردیم 2 پارامتر اصلی رو حالا باید ما پورت رو باز کنیم رو
    Bind سیستم تا کلاینت ها بتونند به ما متصل بشند واسه اینکار باید از خاصیت
    متغیر نوع سوکت سرور استفاده میکنیم.
    کد:
     server.Bind(ipend)
    هست چون اطلاعات در اون ipendpoint مقدارش هم که مشخصه متغیر
    تعیین شده و کار بعدي باید ما گوش بزنگ باشیم که اگه کسی خواست متصل
    متغیر نوع listen بشه به سرور به اون پاسخ بدیم براي اینکار هم از خاصیت
    سوکت سرور باید استفاده کنیم.
    کد:
     server.Listen(Integer.MaxValue)
    این مقداري که من نسبت دادم منظورم تعداد اتصالات هست که یه عدد بزرگ
    گذاشتم که محدودیتی نداشته باشیم.
    تا اینجا اگه کاربر به ما درخواست ارسال کرد ما متوجه میشیم ولی باید اون پیغام
    یا درخواست رو قبول کنیم تا وارد سیستم ما بشه براي اینکار ما درخواست رو
    قبول میکنیم و یه متغیر از نوع سوکت تعریف میکنیم و سوکت سرور رو بهش
    نسبت میدیم تا از این به بعد واسه دریافت و ارسال اطلاعات با اون کار کنیم.
    کد:
     Dim client as Socket
    client = server.Accept()
    از اینجا به بعد ما بسته اي که کلاینت فرستاده رو هم داریم و فقط باید اونو داخل
    متغیر از نوع بایت بریزیم و اونو تبدیل به رشته کنیم که واسه ما واضح باشه.
    براي این کار از کد زیر استفاده میکینم.
    کد:
     Dim rec(1024) as byte
    client.Receive(rec)
    خوب یکم توضیح میدم که ساده تر بشه یه متغیر از نوع باید که مشخصه ما بسته
    اي که کاربر به سرور ارسال کرده رو باید دریافت کنیم و داخل متغیر بایت
    خودمون بریزیم چرا بایت؟؟؟خوب ارسال اطلاعات در شبکه بصورت بیت هست
    دیگه باید زمانی که ارسال میکنیم هم اونو تبدیل کنیم حالا در ادامه متوجه
    میشید...
    تا اینجا ما بسته رو دریافت کردیم و اونو بصورت رشته باید در بیاریم که از توابع
    استفاده میکنیم بصورت زیر: .net خود
    کد:
     System.Text.ASCIIEncoding.ASCII.GetString(rec)
    حالا دیگه میتونم هر کاري خواستیم با پیغامی که کلاینت فرستاده بکنیم.
    کدهاي سمت کلاینت:
    حالا ما باید کدهاي سمت کلاینت رو پیاده سازي کنیم واسه نوشتن کد سمت
    کلاینت یکم فرق داره با سمت سرور چیزي که مشخصه اینجا اینه که ما قرار
    listen کردن و bind نیست دیگه منتظر بسته از طرف کسی باشیم پس نیاز به
    که تعریف ipendpoint کردن نداریم و اگه یادتون باشه واسه تعریف متغیر
    مقدار دهی کردیم چون قرار بود به همه IPAddress.Any رو با ip کردیم مقدار
    جواب بدیم ولی اینجا ما میخوایم خودمون بسته رو ارسال کنیم پس باید بجاي
    سرور رو قرار بدیم و واسه پورت هم مقدار پورتی که سرور تعیین ip اون مقدار
    کرده خوب کد چیزایی که توضیح دادم این هست:
    کد:
     Dim ipend As IPEndPoint=new
    IPEndPoint(IPAddress.Parse("192.168.1.2") , 5050)
    Dim client as Socket = new
    Socket(ipend.AddressFamily,SocketType.Stream,ProtocolType.Tcp
    )
    من آیپی سرورم 192.168.1.2 بوده ولی شما بسته به سرورتون باید تعیین کنید
    نوع پارامتر هاي که واسه متغیر سوکت سمت کلاینت تعریف میکنید هم باید با
    سرور همخوانی داشته باشه خوب فکر نمیکنم چیزي نا مفهومی داشه باشه حالا
    تنها کاري که باید بکنیم اینه که به سرور متصل بشیم و بسته رو ارسال کنیم که
    واسه این کار هم از کد زیر باید استفاده بشه:
    کد:
     client.Connect(ipend)
    client.Send(System.Text.ASCIIEncoding.ASCII.GetBytes(" (("متن خودتون رو بنویسید
    client.Close()
    مشخصه که من با خط اول متصل شدم بعد متن خودم رو تبدیل به بایت کردم و
    ارسال کردم سمت سرور و بعد هم سوکت رو بستم فقط اگه در اینجا سوکت
    سمت سرور گوش به زنگ باشه متن شما در سرور بدست سرور میرسه و میتونیم
    اون طبق چیزي که در قسمت سرور گفتم تبدیل به رشته کنید و استفاده کنید.
    امیدوارم که مورد استفاده قرار بگیره و ساده گفته باشم...

    منبع:iris
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  3. #3
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    هر رایانه میتواند بیش از یک IP داشته باشد، حداقل چون میتوانید بیش از یک کارت شبکه داشته باشد.
    همانطور که خودتان هم میدانید، IP نشانی و آدرس پستی رایانه شما در شبکه است.
    که مشخص میکند بسته اطلاعات باید تحویل چه رایانه ای شود.

    IP دو نسخه کاربردی دارد.
    - آدرسهای ورژن 4 که از اعدادی 32 بیتی استفاده میکرده و در تئوری 2 به توان 32 حالت و رایانه را ساپورت میکند.
    در نوشتار این IP چنین تایپ میشود. 217.85.72.32

    با گسترش شبکه جهانی اینترنت، کوچکی محدوده فوق دردسر ساز شد و نسخه 6 به وجود آمد.
    - آدرسهای ورژن 6 که از اعدادی 128 بیتی استفاده میکند و در تئوری 2 به توان 128 حالت و رایانه را ساپورت میکند. یعنی 2 به توان 96 تا بیش از ورژن 4.
    در نوشتار این IP چنین تایپ میشود. fe80::225:96ef:dd26:d582

    (مطالب دیگری هم وجود دارد، که با توجه به تمرکز بحث روی سوکت از آنها صرف نظر میکنیم.)

    برخی اعداد IP ، انحصاری هستند و معنی خاصی دارند
    فقط به عنوان نمونه :

    کد PHP:
    Loopback
    IPv4
    -127.0.0.1 IPv6-::1
    همواره به رایانه جاری اشاره میکنند
      
    Broadcast
    IPv4
    -255.255.255.255
    آدرسی است که اگر چیزی به آن ارسال شود، همه رایانه ها در شبکه آن دیتا را دریافت میکنند و در نسخه شش دیگر ساپورت نمیشود
      
    Widcard
    IPv4
    -0.0.0.0 IPv6-::
    معرف هر آدرس و هر رابطی است
      
    و 
    ... 
    منبع:برنامه نويس
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  4. #4
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    Port را به نوعی میتوان گفت کد پستی برنامه داخل رایانه شما است.
    شما در یک لحظه میتوانید در حال چک کردن ایمیلتان در برنامه ای باشید،
    میتوانید با IE یک صفحه وب را ببینید
    یا به ftp وصل شده باشید
    و تازه یک برنامه چت هم باز باشد
    و SQLServer هم در گوشه ای کار خودش را کند ... !
    (چه شود! آش شبکه ای!)

    در این گیروداد و با یک IP مشخص چگونه اطلاعات تفکیک میشوند و به برنامه مناسب میرسند؟
    اینجا اهمیت Port مشخص میشود.

    این عدد یک مقدار مثبت 16 بیتی است، یعنی در محدوده رنج ushort ، به بیان دیگر مقداری است بین صفر تا 65535.

    اعداد پورت های زیر 1024 برای استانداردهای خاصی رزو شده اند.
    کد PHP:
    21-FTP control20-FTP data80-HTTP443-HTTPS135-RPC53-DNS143-IMAP993-IMAP SSL110-POP3995-POP3 SSL135-RPC23-Telnet 25-SMTP  
    1433
    -SQLServer 
    شما میتوانید از هر پورتی که خالی باشد و برنامه دیگری از آن استفاده نکند، استفاده کنید، برای کارهای خودتان و خارج از چارت پروتکلهای پایه شبکه فوق الذکر، بهتر است اعداد بالای 1024 را انتخاب کنید.
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  5. #5
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    Port را به نوعی میتوان گفت کد پستی برنامه داخل رایانه شما است.
    شما در یک لحظه میتوانید در حال چک کردن ایمیلتان در برنامه ای باشید،
    میتوانید با IE یک صفحه وب را ببینید
    یا به ftp وصل شده باشید
    و تازه یک برنامه چت هم باز باشد
    و SQLServer هم در گوشه ای کار خودش را کند ... !
    (چه شود! آش شبکه ای!)

    در این گیروداد و با یک IP مشخص چگونه اطلاعات تفکیک میشوند و به برنامه مناسب میرسند؟
    اینجا اهمیت Port مشخص میشود.

    این عدد یک مقدار مثبت 16 بیتی است، یعنی در محدوده رنج ushort ، به بیان دیگر مقداری است بین صفر تا 65535.

    اعداد پورت های زیر 1024 برای استانداردهای خاصی رزو شده اند.
    کد PHP:
    21-FTP control20-FTP data80-HTTP443-HTTPS135-RPC53-DNS
    143
    -IMAP993-IMAP SSL110-POP3995-POP3 SSL135-RPC23-Telnet 25-SMTP  
    1433
    -SQLServer 
    شما میتوانید از هر پورتی که خالی باشد و برنامه دیگری از آن استفاده نکند، استفاده کنید، برای کارهای خودتان و خارج از چارت پروتکلهای پایه شبکه فوق الذکر، بهتر است اعداد بالای 1024 را انتخاب کنید.
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  6. #6
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    این کلاسس صرفاً یک ظرف است، یک ظرف برای نگه داری IP
    همانطور که Integer یک ظرف برای نگه داری اعداد صحیح است.
    همانطور که String یه ظرف برای نگه داری متون رشته است.
    یعنی هیچ پویا بودنی ندارند، به ذات به هیچ جا وصل نمیشوند.

    شما میتوانید هر IP چه ورژن 4 و چه ورژن 6 را در یک کلاسس System.Net.IPAddress جای دهید.
    برای پر کردن این کلاسس میتوان از دستورات زیر استفاده کرد که همه با هم برابر هستند و در نهایت موجب تولید یک IPAddress واحد میشوند

    کد PHP:
    'VB.Net
    Dim ip As New System.Net.IPAddress(New Byte(){127, 0, 0, 1})
    Dim ip As New System.Net.IPAddress(&H100007FL)
    Dim ip As System.Net.IPAddress = System.Net.IPAddress.Parse("127.0.0.1")
      
    //C#‎.Net
    System.Net.IPAddress ip = new System.Net.IPAddress(new Byte[]{127, 0, 0, 1});
    System.Net.IPAddress ip = new System.Net.IPAddress(0x100007FL);
    System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1"); 
    دستور اول آرایه بایتی میگرد، شامل تک تک بایت های IP .
    دستور دوم یک عدد Long میگرید که با اصول ساده باینری و مبنای شانزده میتوان با آن کار کرد.
    دستور آخر یک String را سعی میکند به IP تبدیل کند.
    یعنی میتوان مقدار یک TextBox را عملاً به متد Parse داد و تبدیل شده اش به IPAddress را تحویل گرفت.
    اگر رشته متنی ورودی یک چیز اشتباه و بی ربط و غیر قابل تبدیل به IPAddress باشد یک خطا دریافت خواهید کرد.

    اغلب ساختارها و کلاسسهایی که در دات نت که امکان تبدیل از String دارند متد Parse را هم دارند.

    کد PHP:
    'VB.Net
    Dim i As Integer = Integer.Parse(StringValue)
      
    //C#‎.Net
    int i = int.Parse(StringValue); 
    دیگر اعضای مهم کلاسس IPAddress

    - TryParse عمل Parse را به نوعی دیگر انجام میدهد به جای خطا، یک Boolean پس میدهد که نشانه موفقیت/عدم موفقیت در تبدیل است.

    - ToString میتوانید از این متد برای تبدیل IP به رشته متنی جهت نمایش و... استفاده کنید.

    - Equals مقایسه با یک IPAddress دیگر

    - Loopback یک فیلد ثابت است که همواره ادرس IPv4-Loopback را بر میگرداند.

    - Broadcast یک فیلد ثابت است که همواره ادرس IPv4-Broadcast را بر میگرداند.

    - Any یک فیلد ثابت است که همواره ادرس IPv4-Widcard را بر میگرداند.

    - فیلدهای ثابت IPv6....... هم مشابه موارد فوق هستند.

    یعنی برای آدرس 127.0.0.1
    کد زیر نیز با سه کد درج شده در اول این پست، برابر هستند و هر چهار کد یک نتیجه را در بر دارند.


    کد PHP:
    'VB.Net
    Dim ip As System.Net.IPAddress = System.Net.IPAddress.Loopback  //C#‎.NetSystem.Net.IPAddress ip = System.Net.IPAddress.Loopback; 
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  7. #7
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    این کلاسس هم مثل کلاسس قبلی یعنی IPAddress فقط یک ظرف است.
    ظرفی برای نگاه داشتن IP+Port

    یعنی عملاً یک IPEndPoint شامل آدرس کامل اتصال به یک سوکت و پورت است. هم عدد IP را دارد و هم عدد Port را.

    بدین شکل هم ساخته میشود و نتیجه هر سه IPEndPoint زیر برابر است.

    کد PHP:
    'VB.Net
    Dim ip As New System.Net.IPAddress(New Byte(){127, 0, 0, 1})
    Dim port As New System.Net.IPEndPoint(ip, 5050)
    Dim port As New System.Net.IPEndPoint(&H100007FL, 5050)
    Dim port As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("  127.0.0.1"), 5050)
    '
    etc...
     
    //C#‎.Net
    System.Net.IPAddress ip = new System.Net.IPAddress(new Byte[]{127001});
    System.Net.IPEndPoint port = new System.Net.IPEndPoint(ip5050);
    System.Net.IPEndPoint port = new System.Net.IPEndPoint(0x100007FL5050);
    System.Net.IPEndPoint port = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("  127.0.0.1"), 5050);
    //etc... 
    بعد از نمونه سازی با دستور new اگر خودمان هم به IPAddress و Port نگه داری شده در آن نیاز داشتیم، این کلاسس دو Property با نام Address و Port و به همین منظور دارد که به ترتیب مقدار IPAddress و Port را بازمیگردانند.
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  8. #8
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    سوکت مثل یک ترمینال است، یک پایانه ورودی و خروجی اطلاعات.
    میتوان انواع و اقسام بلوک های بایتی اطلاعات را به وسیله سوکت رد و بدل کرد.

    حال اینکه چگونه و با چه فرمت و قالب و استاندارد همگانی تعریف شده ای اطلاعات را بین سوکت ها رد و بدل کنیم، میشود پروتکل.

    Tcp/ip یکی از پروتکل های تحت شبکه و کار با سوکت ها است.
    این پروتکل اتصال گرا است و اطمینان از دست نرفتن اطلاعات در آن زیاد است و یک تضمین هایی روی اتصال ایمن و رسیدن و تکرار بسته ها در صورت خطا هم دارد و پروتکل استاندارد وب هم شده.

    شاید بتوان tcp را معروف ترین و پرکاربرد ترین پروتکل به حساب آورد.

    منبع مطالب :برنامه نويس
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  9. #9
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    برای ساخت یک نمونه Socket جدید نیاز به سه پارامتر داریم:

    کد PHP:
    1System.Net.Sockets.AddressFamily
    2
    System.Net.Sockets.SocketType
    3
    System.Net.Sockets.ProtocolType 
    )
    -پارامتر اول ساختار و نوع IP را مشخص میکنید که پرکاربرد ترین گزینه ها InterNetwork برای IPv4 و InterNetworkV6 برای IPv6 است.
    کلاسس IPAddress هم یک ReadOnly Property با نام AddressFamily دارد، که میتوان از این مقدار برای این پارامتر اول ساخت Socket هم استفاده کرد.

    2)
    -پارامتر دوم نوع رد و بدل شدن و انتقال دیتا ها را توسط سوکت مشخص میکند. که برای بحث ما و تحت TCP/IP گزینه Stream را باید استفاده کنیم، این گزینه یک زنجیره اطلاعات را مشخص میکند.
    احتمالاً باید بدانید Stream به چه مفهوم است، یک قطار دیتا، مثل نوارنقاله یک کارخانه که بسته های کالا رویش حرکت میکند.
    به ذات بسته ها تکرار نمیشوند و قابلیت دسترسی به هر نقطه را هم ندارید، یک چیزی شبیه دانلود، که بایت به بایت را میگیرد و در هارد ذخیره میکنید.

    3)
    -پارامتر سوم و اخر هم پروتکل کاری را ست میکند، یک لایه استاندارد بالاتر.
    پرکاربرترین گزینه ها هم Tcp و Udp هستند، که برای بحث ما فقط Tcp باید انتخواب شود.

    باید توجه داشت که با ساخت Socket جدید هنوز هیچ اتفاق و وصل شدنی انجام نشده.
    (سه دستور زیر برای ساخت سوکت جدید، نتیجه یکسانی دارند.)
    کد PHP:
    'VB.Net
    Dim ip As System.Net.IPAddress = System.Net.IPAddress.Parse("127.0.0.1")
    Dim point As New System.Net.IPEndPoint(ip, 80)
      
    Dim socket As New System.Net.Sockets.Socket(System.Net.Sockets.Addre  ssFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
    Dim socket As New System.Net.Sockets.Socket(ip.AddressFamily, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
    Dim socket As New System.Net.Sockets.Socket(point.AddressFamily, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
      
     
    //C#‎.Net
    System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1");
    System.Net.IPEndPoint point = new System.Net.IPEndPoint(ip, 80);
      
    System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(System.Net.Sockets.Addre  ssFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
    System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(ip.AddressFamily, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
    System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(point.AddressFamily, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp) 
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
  10. #10
    adminmsp
    مدیر کل و موسس سایت
    تاریخ عضویت
    1970 Jan
    محل سکونت
    M.S.P Soft
    نوشته ها
    1,588
    759
    429
    مرحله بعد از ساخت سوکت، اتصال سوکت است
    برای این امر دو متد Bind و Connect وجود دارد که هر دو یک IPEndPoint میگیرند.
    (انشاا... لازم نیست یاد اوری کنم مطالب با محوریت پروتکل TCP بیان میشوند.)

    متد Bind به سیستم عامل اعلام میکند که شما را به پورت خاصی وصل کند.
    این متد را برای سوکت های سرور استفاده میکنیم تا به سیستم عامل اعلام کنیم تمام درخواست های رسیده به یک آدرس و پورت خاص را به سوکت و برنامه ما تحویل دهد.

    متد Connect شما را برای گرفتن خدمات به آدرس و پورت خاصی وصل میکند.
    این متد را فقط برای سوکت های سمت کلاینت استفاده میکنیم تا سیستم عامل ما را به سوکت سرور برای خدمات گیری وصل کند.
    این متد در زیر ساز داخلی سیستم عامل کار Bind را هم انجام میدهد و اصولاً نیاز به Bind را بر طرف میکند.

    به صورت ساده میتوان این طور گفت که Bind متد اتصال برای سوکت سرور است و Connect متد اتصال برای سوکت کلاینت.
    هر دو این متدها به دلایل مختلف میتوانند به خطا مواجه شوند مثلاً
    در سرور شاید یک سوکت دیگری پورت را قبلاً گرفته باشد
    و یا در کلاینت شاید سوکنت نظیر سرور فعال نباشد یا ایرادی در ارتباط شبکه باشد
    و...

    ضمناً تنظیم خصوصیت ExclusiveAddressUse قبل از Bind معمولاً در سوکت های سمت سرور مشخص میکند که باید پورت انحصاراً در اختیار سوکت ما باشد یا نه.

    (کد خاصی ندارد، کافیست نمونه IPEndPoint را تحویل متد بدهید.)
    با M.S.P Soft به دنياي برنامه نويسي وارد شويد[برای نمایش لینک باید عضو شوید. ]
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 16

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

Content Relevant URLs by vBSEO 3.6.0 RC 2