PDA

View Full Version : فرق TCP با C++



AliRezaPro
سه شنبه 06 فروردین 1387, 16:22 عصر
سلام
من یه چند وقتی که که C++ رو شروع کردم و تا جاهایی جلو رفتم که تا صفحه ی 29 رسیدم
که اونجا اولین برنامه ی ساده رو یاد داد که با cout , cin بود
در حین جلو رفتن آدرس Turbo c++ رو داد واسعه دانلود که من واسم سئوال پیش اومد که فرق c++ با TCP چیه؟
تو بیتهاشونه؟تو کارهای گرافیکیشونه؟
کدومو شروع کنم بهتره؟یه اموزش کامل و جامع هم اگه میشه معرفی کنید
(بچه ها شرمنده اگه سئوال خیلی ساده بود یا جای این تاپیک اینجا نبود , کلا تازه واردیم)
تشکر

MOHSEN8000
سه شنبه 06 فروردین 1387, 17:19 عصر
اگه منظورت از TCP توربو C هست که یه کامپایلر هست برای C++ که من G++ رو توصیه می کنم ولی اگه منظورت به شبکه باشه (که فکر نکنم منظورت این باشه) که خب به هم خیلی ارتباطی ندارن.

AliRezaPro
سه شنبه 06 فروردین 1387, 18:08 عصر
من فرق زبان برنامه نویسی TCP با C++ رو میخوام
میگن TCP راحت تر هست و بیشتر برای کارهای آموزشیه
بله همون turbo c++ هست
نظرتون درمورد Dev-C++ چیه؟خوبه؟که gcc
اگه میشه لینک اون کمپایلر رو بذارینG++

ICEMAN
سه شنبه 06 فروردین 1387, 18:14 عصر
بله همون turbo c++ هست
نظرتون درمورد Dev-C++ چیه؟خوبه؟که gcc
اگه میشه لینک اون کمپایلر رو بذارینG++
:D
خیلی خوبه من به شخصه خیلی دوست دارم DevC++ رو OpenSource هم هست
از Code::Block هم میتونی استفاده کنی اونم از Compiller و ابزارهای MinGW استفاده میکنه

از طرفی lcc رو هم اگه بهت خوش میگذره سبک و باحال
مقایسه فنی اینا هم باشه یه فرصت دیگه، ...

خوش باشی

AliRezaPro
سه شنبه 06 فروردین 1387, 18:51 عصر
:D
مقایسه فنی اینا هم باشه یه فرصت دیگه، ...

منتظر میمونم عزیز
حالا شما فرقشو نمیدونی? (c++ & TCP)

Mbt925
سه شنبه 06 فروردین 1387, 23:39 عصر
C++ یه زبان هست و TCP یه کامپایلر برای این زبان.
از یه سنخ نیستن که باهم مقایسشون کنید.

++Microsoft Visual C یه IDE خیلی خوب برای زبان C++ هست.

Nima_NF
چهارشنبه 07 فروردین 1387, 01:52 صبح
شما با کامپایلر Turbo C می توانید برنامه های تحت C را کامپایل کنید و توسط ++Turbo C برنامه های نوشته شده به زبان ++C را می توانید کامپایل کنید.
ضمنا زبان ++C قابلیت های بیشتری نسبت به زبان C دارد مانند شئی گرایی.



میگن TCP راحت تر هست و بیشتر برای کارهای آموزشیهبرای کار های آموزشی بود ! (یعنی تا 15 سال قبل)

در حال حاضر برای کار های آموزشی در دنیا نسخه های رایگان و محدود شده کامپایلر های تجاری قدرتمند مانند Visual C++ express و یا نسخه های رایگان و open source مانند DevC++/minGW (و یا سایر کامپایلر های تحت سیستم عامل های 32 بیتی) استفاده می شوند:

http://www.microsoft.com/express/vc/
http://www.bloodshed.net/devcpp.html

amir_saniyan
شنبه 10 فروردین 1387, 18:44 عصر
سلام

TCP یک محیط برای نوشتن برنامه به زبان C++ است. تفاوت TCP و زبان C++ مثل تفاوت ایران خودرو و پیکان است.

طبیعتا چون C++ کم کم کامل شده محیط‌های قدیمی‌تر از بعضی ویژگی‌های استاندارد پشتیبانی نمی‌کنند پس بهتره که از محیط‌های جدیدتر استفاده کنیم.

به نظر من بهترین چیز برای یک کاربر تازه کار، همون محیط مایکروسافت (Visual Studio 2008) است.

اما چرا؟ معلومه: چون اگه می‌خواهی پول دربیاری باید با همین محیط آشنا باشی. پس بهتره که اصلا از اول با این محیط آشنا باشی. اما اگه نمی‌خواهی کار تجاری کنی (حتی در آینده) شاید محیطهای لینوکسی بهتر باشند چون خیلی از پروژه‌های علمی روی این محیط پیاده‌سازی شده‌اند.

در ضمن اگه واقعا می‌خواهی در آینده به عنوان برنامه‌نویس کار کنی اکیدا توصیه می‌کنم که C#رو خوب یاد بگیر که باهاش کلی پول می‌شه درآورد.

موفق باشی.

AliRezaPro
یک شنبه 11 فروردین 1387, 01:20 صبح
خوب منم میخوام که محیط جی یو آی باشه ولی Visual Studio 2008 دات نت هست
میشه یکاری کرد که دات نت کمپایل نشه؟چون اگه دات نت باشه اگه بخوایم تو یه کامپیوتر دیگه امتحان کنیم اون باید دات نت فریم ورک نصب کنه واسعه همین یخورده مشکل ایجاد میکنه ولی فکر کنم 2005 رو میشه معمولی کمپایل کرد درسته؟
تشکر

amir_saniyan
یک شنبه 11 فروردین 1387, 04:54 صبح
سلام دوباره.

نگاه کن دوست عزیز، درک تفاوت Visual Studio با عبارات C، C++ و VC++ و VC++.NET مهمه.

در Visual Studio می‌شه به تمامی زبان‌های بالا برنامه نوشت. در این صورت:

* اگه بخواهی به زبان C برنامه بنویسی باید حتما وقتی New Project که می‌زنی یکی از پروژهای Win32 رو انتخاب کنی مثلا Win32 Console Application یا Win32 Project و حتما پسوند فایل‌ها هم C باشه و نه CPP. در این حالت مثلا اگه یک متغیر رو وسط برنامه تعریف کنی کامپایلر بهت خطا می‌ده (یکی از تفاوت‌های C و Cpp) و حتما باید متغیرها اول برنامه تعریف بشوند یا مثلا نمی‌تونی از کلاس استفاده کنی یا به جای cout باید از printf استفاده کنی. حالا وقتی برنامه کامپایل شد برنامه‌ات روی هر ویندوزی قابل اجراست و اصلا و به هیچ وجهی ربطی به .NET نداره.

* اگه بخواهی به زبان ++C برنامه بنویسی باید حتما وقتی New Project که می‌زنی یکی از پروژهای Win32رو انتخاب کنی و حتما پسوند فایل‌ها هم CPP باشه و نه C. حالا در این حالت می‌تونی با استفاده از زبان C++ برنامه بنویسی. حالا وقتی برنامه کامپایل شد برنامه‌ات روی هر ویندوزی قابل اجراست و اصلا و به هیچ وجهی ربطی به .NET نداره.

* VC++: این خودش به تنهایی یک زبان نیست بلکه اگه شما تو یک پروژه C++ از Library های تهیه شده توسط مایکروسافت (مثل MFC یا ATL) استفاده کنید به این نوع برنامه نویسی می‌گن برنامه نویسی VC++. (باید حتما وقتی New Project که می‌زنی یکی از پروژهای Win32 یا MFC یا ATL رو انتخاب کنی) پس وقتی می‌گن VC++ یعنی علاوه بر Library های استاندارد کلی Library و API (همون تابع خودمونه :) ) تو برنامه‌تون هست که می‌شه استفاده کرد. بنابراین تعجبی نداره که بعضی از کارها رو چند جور بشه انجام داد. مثلا برای رشته‌ها می‌شه از char* (کتابخانه C) و یا string (کتابخانه C++) و یا CString (کتابخانه MFC) استفاده کرد. حالا با این همه کلاس و این همه تابعی که مایکروسافت تعریف کرده هر کاری تو ویندوز می‌شه انجام داد. اما بدی این کار اینه که دیگه کدی که می‌نویسید قابل انتقال به مثلا لینوکس نیست. در نهایت حالا وقتی برنامه کامپایل شد برنامه‌ات روی هر ویندوزی قابل اجراست و اصلا و به هیچ وجهی ربطی به .NET نداره.

* VC++.NET: اگه بخواهی به زبان VC++.NET برنامه بنویسی باید حتما وقتی New Project که می‌زنی یکی از پروژهای CLR رو انتخاب کنی و حتما پسوند فایل‌ها هم CPP باشه و نه C. حالا در این حالت می‌تونی با استفاده از زبانVC++.NET برنامه بنویسی. فرقش با قبلی اینه که نه تنها از تمام Library های C، C++، MFC و ATL می‌شه استفاده کرد بلکه حالا از تمام کلاس‌های دات نت هم می‌شه استفاده کرد. یعنی حالا برای همون رشته از کلاس String که متدهاش دقیقا شبیه C# و VB.NET هست «هم» می‌شه استفاده کرد. اما خود زبان هم یک چیزهایی بهش اضافه شده (مثل Property). یعنی مایکروسافت اومده به همون زبان C++ یک سری ویژگی‌های دیگه هم اضافه کرده تا با دات نت سازگار بشه. اما بعد از اینکه برنامه کامپایل شد کد تولید شده کاملا وابسته به دات نت هست. یعنی دیگه اگه بخواهی برنامه رو اجرا کنی باید حتما دات نت نصب باشه چون به هر حال شما به کامپایلر گفتید که می‌خواهید از کتابخانه دات نت استفاده کنید (هر چند که واقعا استفاده نکرده باشید).

پس (با کمی اغماض):

با زبان C می‌شه برنامه‌های کنسولی (شبیه DOS) نوشت و هر جایی اجرا کرد (بدون نیاز به دات نت) و حتی کامپایل نمود (مثل لینوکس) ولی محدود به همون صفحه نمایش داسی و صفحه کلید است.


با زبان C++ می‌شه برنامه‌های کنسولی (شبیه DOS) نوشت و هر جایی اجرا کرد (بدون نیاز به دات نت) و حتی کامپایل نمود (مثل لینوکس) ولی محدود به همون صفحه نمایش داسی و صفحه کلید است ولی خود زبان شی‌گراست. تمامی پروژه‌های C کاملا قابل انتقال به C++ هستند.

با زبان C++ به اضافه کتابخانه‌های مایکروسافت (مثل MFC یا ATL) می‌شه برنامه‌های کنسولی (شبیه DOS) یا برنامه‌های ویندوزی (پنجره‌ای) نوشت و در هر ویندوزی اجرا کرد (بدون نیاز به دات نت) اما داخل لینوکس نمی‌توان کامپایل کرد. زبان برنامه نویسی همان C++ و C (که سازگار با C++ است) می‌باشد. تمامی پروژه‌های C و C++ کاملا قابل انتقال به این نوع پروژه‌هاست.

با زبان C++.NET می‌شه برنامه‌های کنسولی (شبیه DOS) یا برنامه‌های ویندوزی (پنجره‌ای) نوشت و در هر ویندوزی اجرا کرد (به شرط نصب دات نت) اما داخل لینوکس نمی‌توان کامپایل کرد. از تمامی کلاس‌های دات نت (مثلا تمام کلاس‌هایی که در C# وجود دارد) می‌توان استفاده کرد. از کتابخانه‌های MFC و ATL نیز تا حد بسیار زیادی می‌توان استفاده کرد. زبان برنامه نویسی C++.NET (که سازگار با C و C++ است) می‌باشد. تمامی پروژه‌های C و C++ و VC++ کاملا قابل انتقال به این نوع پروژه‌هاست.


دقت کنید که زبان C یک سیر تکاملی را طی کرده و مدام به امکانات قبلی خود افزوده است تا جایی که حتی خود ربان هم متحول شده. مثلا ابتدا عملیات چاپ با printf انجام می‌شده اما بعدا cout نیز همان کار printf را راحت‌تر انجام داده ولی printf حذف نشده. یا مثلا برنامه‌های پنجره‌ای در ابتدا با کمک MFC نوشته می‌شد اما بعدا با دات نت راحت‌تر این نوع برنامه‌ها ایجاد می‌شدند ولی MFC حذف نشده و به همین ترتیب.

موفق باشید.

ICEMAN
یک شنبه 11 فروردین 1387, 21:38 عصر
اشتیباه شد
فرق Compiler های مختلف C رو گفتم
اگه فکر میکنید همه برنامه هایی که کد Hello World شما رو Compile کنه همه یکی هستن که هیچ!!!

mehrzad007
جمعه 30 فروردین 1387, 05:47 صبح
برای لینوکس هم کتابخانه هایی مثل ATL , MFC وجود داره ؟ آیا امکان پورت اونها به ویندوز هست ؟ کامپایلرهایی شبیه (اسمش چی بود؟ کیو ..؟) که مولتی پلت فرم هستند چی ؟ اونها از چه کتابخانه هایی استفاده می کنند ؟

Nima_NF
شنبه 31 فروردین 1387, 00:11 صبح
برای لینوکس هم کتابخانه هایی مثل ATL , MFC وجود داره ؟ آیا امکان پورت اونها به ویندوز هست ؟ کامپایلرهایی شبیه (اسمش چی بود؟ کیو ..؟) که مولتی پلت فرم هستند چی ؟ اونها از چه کتابخانه هایی استفاده می کنند ؟
بله ابزار مختلفی وجود دارد:
Qt, Wxwidgets , GTK+ , TK , motif , ...

از آنجایی که همه این انواع cross-platform هستند قابل کامپایل و استفاده در ویندوز نیز هستند، یعنی این ابزار در لایه زیرین خود مثلا از Xlib در لینوکس و از win32 در ویندوز استفاده می کنند.
اگر برنامه ای به طور مستقیم توسط Xlib نوشته شده باشد به سختی پورت خواهد شد (که کمتر نرم افزاری به طور مستقیم از Xlib استفاده می کند)، به همین منظور اگر از همان ابتدا از ابزارهای فوق استفاده کنید این کار قبلا برایتان انجام شده است و هر تابع و قابلیتی توسط کتابخانه های سیستم عامل ها مختلف از جمله MAC هم پیاده سازی شده است.
لذا این ابزار توسط کامپایلر GCC در لینوکس و ++VC در ویندوز و Xcode در مکینتاش قابل استفاده هستند (همین طور برخی کامپایلر های دیگر)

از آنجایی که سوال شما بی ارتباط با موضوع تاپیک هست در صورت نیاز به اطلاعات دیگر بهتر هست تاپیک جداگانه ای ایجاد کنید.

موفق باشید

Sebtic
یک شنبه 01 اردیبهشت 1387, 00:43 صبح
salam
khaste nabashid
mikhastam yeki mano damorede safhay peyvandi dar c++ rahnamaee kone
mekham amale creat-is empty-add-delete ro barash benevisam
ba tashakor

emad_67
یک شنبه 01 اردیبهشت 1387, 12:59 عصر
دوست عزیز، شما برای سوالت یه تاپیک جدا بزن و تاپیک های دیگه را بالا نیار. همچنین حتما فارسی تایپ کن.

دوست غریبه
سه شنبه 06 اسفند 1387, 19:00 عصر
سلام
یه کتاب برنامه نویسی جامع یا حداقل مفید سی و سی ++ به زبان فارسی معرفی کنید
ممنون

SamaPic
سه شنبه 06 اسفند 1387, 20:29 عصر
سلام
یه کتاب برنامه نویسی جامع یا حداقل مفید سی و سی ++ به زبان فارسی معرفی کنید
ممنون

دوست عزيز.
شما جواب خود را بطور تمام وكمال به همراه بحث كامل در بخش زير پيدا مي كنيد.
در اين بخش پستي به همين منظور تهيه گرديده است.

http://barnamenevis.org/forum/forumdisplay.php?f=104

موفق باشيد.
خدانگهدار.

obscure
چهارشنبه 07 اسفند 1387, 13:18 عصر
از آنجایی که همه این انواع cross-platform هستند قابل کامپایل و استفاده در ویندوز نیز هستند،
ببخشید که سوالم ابتدایی هست..می خواستم اگه میشه راجع به کراس پلتفورم بیشتر توضیح بدین..این کامپایلر ها به چه شکل و با چه پسوندی برنامه رو کامپایل می کنن که روی سیستم عامل های مختلف اجرا میشه؟؟مثلا اگه exe باشه که تو لینوکس اجرا نمیشه یا بر عکس....

Nima_NF
چهارشنبه 07 اسفند 1387, 15:31 عصر
ببخشید که سوالم ابتدایی هست..می خواستم اگه میشه راجع به کراس پلتفورم بیشتر توضیح بدین..این کامپایلر ها به چه شکل و با چه پسوندی برنامه رو کامپایل می کنن که روی سیستم عامل های مختلف اجرا میشه؟؟مثلا اگه exe باشه که تو لینوکس اجرا نمیشه یا بر عکس....
ما از کامپایلر cross-platform استفاده نمی کنیم، از کتابخانه های cross-platform استفاده می کنیم که معادل های ان ها برای سایر سیستم عامل ها معروف پیاده سازی شده است.
در هر سیستم عامل باید از کامپایلر مخصوص همان OS استفاده کنید و کدها را با آن مجددا کامپایل کنید تا فایل اجرایی مخصوص همان OS ساخته شود.

برای اطلاعات بیشتر بخش فنی را مطالعه کنید.