# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C >  ای پی اسکنر

## vbc

سلام دوستان
کسی سورس ای پی اسکنر به زبان سی پلاس پلاس رو داره؟

----------


## taze kar

یه راه بد اینه که با یک سوکت شروع کنی از بورت 1 تا 65535 رو بهشون وصل بشی هر کدوم که اتصال رو قبول کرد یعنی یه بورت باز 
بااستفاده از CSocket یا CAsyncSocket می تونی زیاد هم سخت نیست یه Eventهم داره واسه این که بفهمی اتصال قبول شده یا نهOnConnect
فکر کنم سرعتش خیلی بایین باشه

----------


## taze kar

راستی اینی که کفتم توی VC++‎ باید بنویسی

----------


## seyedof

سلام
تا پورت 32767
ممنون علی

----------


## taze kar

جرا تا این بورت ؟
یعنی بقیه کشک ؟

----------


## seyedof

سلام
تست کنید. من یک بار آزمایش کردم فقط تا این پورت کار میکرد (توی ویندوز). البته مطمئن نیستم.
ممنون علی

----------


## taze kar

من جند دقیقه بیش روی بورت 40000 یه سوکت رو لیسن کردم و با یکی دیکه بهش وصل شدم و هیج مشکلی نداشت

----------


## plus

احتمالا شما شماره پورت رو توی یه متغیر از نوع Integer نگهداری میکردین که تا  به مقدار 32768 رسیده برنامه متوقف شده!(ظرفیت متغیر پر شده)

----------


## sh_roohani

بابا تو ویندوز int ها 32 بیتی هستن. نمی شه که با 32768 تا overflow کنه!

----------


## plus

آره راست میگی.من چون بیشتر با ویبی کار کردم این اشتباه رو کردم....(توی ویبی int ها 16 بیتی هستن)

----------


## seyedof

سلام
توی سی نوع داده short روی تمام پلتفرمها ۱۶ بیتی است. متغیر پورت هم که در WinSock استفاده شده از نوع unsigned short است نه int . مشکل من این بود که فکر کردم short است نه unsigned short بنابراین پورت میتواند حداکثر 65535 باشد. اگر short بود حداکثر 32767 پورت میشد.
ممنون علی

----------


## mr_esmaily

سلام
میشه یه سورس اینجا قرار بدین؟

----------


## Pars Giga

سلام
ببخشید من برنامه نویسی سوکت بلدم ( اصولش) به صورت تئوری
چطور باید عملی امتهان کرد
یهنی در vC++‎ باید چه کتابخانه ای را اضافه کنم
چضوری تاریف کنم و ...

----------


## sh_roohani

شما همون اول که پروژه تونو ایجاد می کنین، تو AppWizard تو مرحله دوم یه جایی هست که می تونین یه چک باکس رو علامت بزنین و پشتیبانی WinSock رو به پروژه تون اضافه کنین. به جای اینکار می تونین از هدر winsock2.h و کتابخونه ws2_32.lib استفاده کنین.

----------


## sh_roohani

> سلام
> میشه یه سورس اینجا قرار بدین؟


<a href="http://netcins.ceid.upatras.gr/ContentDistribution/project_help/bgnet.pdf">یه منبع خیلی خوب</a>

----------


## armin390

سلام
برای این کار به نظر من میشه کلک زده و اصلا پورت ها رو چک نکرد بلکه از دستور ping در تابع سیستم استفاده کرد یا دستورات مشابه.system("ping");

ولی اینها راهش نیست نه چک کردن تمام پورت ها نه دستور پینگ خیلی وقت پیش نمی دونم کجا برخورد کردم ولی فکر کنم از طریق ICMP باشه.
اگه چیزی پیدا کردم حتما میزارم.

----------

