Hello,
so I have few basic questions and would like to hear your opinion about choosing a right way in C++ programing:
I'm stil learning basics like classes, templates, and standard libraries but I wanna prepare my self like, where to continue first:
sockets: winsock, boost or BSD sockets
GUI: wxwigets or QT or MFC
windows programing using windows libraries like "windows.h" etc...
I would just like to know how may time it does takes to learn basic network programing (TCP, UDP, ICMP) and making simple GUI programs with sockets related to windows platform.
what are diferences between one or another "libraries sets"
to be more precise I dont care if winsock is harder to learn then boost, if winsock is better and more powerfull than I'll spend time to learn that reather then give up and change my mind few moths later. aka "the other thing would be maybe better"
same with GUI.
valuable, that's quite (hehe) subjective. However I like winsock and bsd sockets, I've never messed with QT socks, but I'm sure they're great. It's pretty easy to get up and running with winsock, and beej's guide is great. There's a lot you can do that's cross-platform, but the fastest functions are not (eg poll, and winsock specific functions)
If you're making your own protocol, may I suggest that you use a header-type packet instead of a beginning and end command character type packet, it's much more flexible.
since I'm targetiing to windows platform first and maybe linux some other time in the future I'll start with winsock and QT for now..
@Albatross
If the OP decides to go with Qt as a cross-platform multipurpose API, then Qt Sockets might integrate better with the rest of the Qt application.
...
...
What about cross-platform Qt Sockets? ;_;
that's good info and this will be my next move in network programing after winsock, for cross-platform :D
It's not necessary to use a particular library for sockets since the actions taken are pretty much always the same (like accept connect read write etc.) You might want to create your own class for that
if you want a framework consider POCO http://pocoproject.org/ which has a pretty good network support