PDA

View Full Version : برنامه نویسی شبکه



behnam_akb
سه شنبه 15 آذر 1384, 16:36 عصر
من در مورد C و کار با socket programming چیزی نمی دونم.

می خواستم بدونم چه طور میشه با پورت ها در C یا C++ کار کرد؟؟

مثلا چه طور به یه پورت connect شیم؟

چه طور یه پورت رو در حالت listening قرار بدیم؟

و چه طور اطلاعات رو جا به جا کنیم

seyedof
سه شنبه 15 آذر 1384, 17:05 عصر
سلام
برای اینکار باید MSDN رو اول مطالعه کنید و یک مقدار هم در مورد پروتکلهای TCP/IP اطلاعات داشته باشید. بدون اینها دردسره.
ممنون علی

behnam_akb
سه شنبه 15 آذر 1384, 23:41 عصر
ببخشید من زیاد window programming کار نکردم میشه بگید کدوم ورژن از MSDN این اطلاعات ر دراه؟

فرقی نمی کنه که از چه نسخه ایی از خانواده C استفاده کنیم؟ (C , C++ , visual C++ ,.... )

seyedof
چهارشنبه 16 آذر 1384, 09:36 صبح
سلام
MSDN در تمام ورژنهاش این رو داره. توی ویندوز چندین راه برای توسعه برنامه های شبکه وجود داره. اگر در ویژوال سی MFC استفاده میکنید یک سری کلاس برای اینکار داره که کار باهاشون هم راحته مثل CSocket , CAsyncSocket
اگر دوست دارید خودتون مستقیم با API هاش کار کنید و بدونید که چی به چیه دو راه داره یکیش توابعش و نحوه استفاده اش همون berkley sockets است که توی یونیکس و غیره هم استفاده میشه و راه دوم استفاده از توابع خود ویندوز برای سوکت هاست که یک مقدار امکانات اضافی داره توابعش هم با WSA شروع میشه اسمشون.
برای محیط توسعه هم Visual C و C++ Builder توصیه میشه. البته از کمپوننتهای شبکه خود Builder استفاده نکنید چون چیزی یاد نخواهید گرفت و نهایتش به چیزی میرسید مثل CSocket در MFC.
ضمنا عنوان تاپیکتون هم اشتباه است. کار با پورتها یک معنی دیگه میده.
ممنون علی

behnam_akb
چهارشنبه 16 آذر 1384, 21:06 عصر
ممنون از پاسختون

ببخشید عنوان رو بد انتخاب کردم
گفتم که من کارم چیز دیگه ای هست من خودم web programmer هستم
اما به این بحث خیلی علاقه مند شدم

من از ویژوال ها استفاده نمی کنم و می خوام از خود C++ استفاده کنم حالا باید چی کار کنم؟

از چی باید استفاده کنم و کجا

behnam_akb
جمعه 18 آذر 1384, 00:33 صبح
سلام

من داشت تو یه کتاب در این رابطه می خوندم به این هدر فایل بر خوردم :


#i n c l u d e <s y s / s o c k e t . h>


اما این هدر فایل در TC++ وجو نداره .

میشه بگید اینجور هدر فایل ها رو باید از مجا آورد؟ (از نسخه های ویژوال/؟؟)

آیا اصلا در TC++ 3 میشه از socket programming استفاده کرد؟

seyedof
جمعه 18 آذر 1384, 00:49 صبح
سلام
در محیط داس میخواهید برنامه نویسی شبکه کنید یا در ویندوز؟
ممنون علی

behnam_akb
جمعه 18 آذر 1384, 10:56 صبح
من از کامپایلر Turbo C++ استفاده می کنم

مشخصه ک تحت داس اجرا میشه

بهتره که تحت داس باشه اما اگه تحت کنسول هم بود خیلی ایراد نداره

ببینم مگه تحت داس فرق می کنه؟

seyedof
جمعه 18 آذر 1384, 12:14 عصر
سلام
بله فرق میکنه. در داس به صورت استاندارد پروتکل tcpip پشتیبانی نمیشه. شما باید یک اصطلاحا stack برای tcpip تحت داس نصب کنید بعد دنبال کتابخانه های برنامه نویسی اوون باشید. ضمنا tcp تحت داس چندان پایدار نیست.
تحت ویندوز برای برنامه نویسی شبکه winsock و توابع اوون در اختیار شماست (حتی در برنامه های کنسول). بنابراین به نظر من قید برنامه نویسی شبکه تحت داس رو بزنید بهتره.
تحت ویندوز اینکار رو انجام بدید. ضمنا آموزشش تقریبا مفصله. به tutorial ها و کدهای نمونه موجود روی اینترنت توجه کنید ضمنا داشتن مقداری دانش شبکه ضروری است مثلا در حد چند فصل کتاب Computer Networks خیلی مناسب است.
کار مشکلی نیست ولی خب طبیعیه واسه کسی که برای اولین بار میخواد همچین کاری رو یاد بگیره یک مقدار زمان لازمه.
ممنون علی

behnam_akb
جمعه 18 آذر 1384, 21:44 عصر
ممنون از راهنمایی های خوبتون

پس فکر می کنم من از VC++ استفاده کنم خیلی بهتر باشه تا Turbo C++ اما من در ورژن 6 نتونستم s o c k e t . h رو پیدا کنم ، کتابی در این رابطه پیدا کردم خیلی کتاب خوبیه اما فقط این فایل رو اینکلود کرده و نگفته از کجا آوردتش

behnam_akb
چهارشنبه 23 آذر 1384, 22:55 عصر
کسی نمی تونه کمک کنه؟

sh_roohani
پنج شنبه 24 آذر 1384, 10:46 صبح
سلام،
اون چیزی که شما دیدید مال یونیکسه، تو ویژوال ++C اسم اون فایل winsock.h هست و توی دایرکتوری Include. در ضمن نظر شخصی من اینه که تا اونجایی که می شه از توابع برکلی استفاده کنین، نه از توابع خاص مایکروسافت یا کلاسهای MFC. علتش هم اینه که بعدا روی هر سیستم عاملی که از سوکتهای برکلی پشتیبانی کنه (و تقریبا همه nix ها و فکر می کنم Mac اونا رو پشتیبانی می کنن)، با کمترین تغییرات می تونین کد سوکتی رو که روی ویندوز نوشتین کامپایل کنین. حالا اگه اصرار دارین از Windows Sockets 2 استفاده کنین، اسم header اون winsock2.h هست.

behnam_akb
پنج شنبه 24 آذر 1384, 12:40 عصر
ببخشید میشه در مورد توابع برکلی توضیح بدید

یعنی تو اینا اط کدوم استفاده کنم؟

sh_roohani
پنج شنبه 24 آذر 1384, 12:46 عصر
بهترین توضیح (http://beej.us/guide/bgnet/output/print/bgnet.pdf)

sh_roohani
پنج شنبه 24 آذر 1384, 14:23 عصر
به این دو تا صفحه هم یه نگاهی بندازین، شاید کمک کنه:
http://www.ecst.csuchico.edu/~chafey/prog/sockets/sinfo1.html
http://www.ecst.csuchico.edu/~chafey/prog/sockets/sinfo2.html