Как начать работу с кроссплатформенным сетевым программированием? - PullRequest
3 голосов
/ 02 августа 2011

Я подумываю о покупке этой книги , чтобы узнать больше о сетевом программировании на C / C ++:

Мне просто интересно, есть ли / нужна ли мне книга, эквивалентная Windows?планирую кодировать на обеих ОС ').Я не уверен в разнице в эволюции, касающейся BSD-сокетов Windows.

Я в основном покупаю это, чтобы в конечном итоге написать код, который будет передавать данные между компьютерами.

Ответы [ 6 ]

2 голосов
/ 02 августа 2011

Сделав оба, я определенно начну с версии BSD.Мало того, что вы будете изучать что-то полезное на обеих платформах (и на других), но у вас будет лучшее представление о том, что на самом деле происходит под ним.

Я думаю, что вам нужно задать себе следующие вопросы:

  • Как скоро вы планируете добавить Windows в свой сетевой программный репертуар, И
  • Хотите ли вы, чтобы ваш код был кроссплатформенным

Если вы хотитеВаш код должен быть кроссплатформенным, я бы посмотрел на Boost или какую-нибудь другую кроссплатформенную сетевую библиотеку, чтобы быстро добраться до вас.Если вы просто хотите начать изучать сетевое программирование в целом, а затем добавить сетевое программирование Windows специально к своему набору навыков, я бы начал с API BSD, как вы запланировали, а затем получил бы ресурс для того, чтобы сделать это специально для Windows, когдаты готов.Когда я перешел с Linux на Windows, я обнаружил, что стоит потратить дополнительное время на изучение способов работы с Windows.

2 голосов
/ 02 августа 2011
1 голос
/ 02 августа 2011

Для простых приложений сокеты BSD будут отлично работать в Windows. Но для наворотов я очень рекомендую почитать о "родном" винсоке. Асинхронные сокеты действительно хороши в приложениях с графическим интерфейсом, и Overlapped I / O - просто колени пчелы, если вы хотите высокую производительность, без необходимости работать с потоками (вы можете, если хотите, но Windows сделает это за вас). 1001 *

Это - хорошее чтение.

1 голос
/ 02 августа 2011

Даже если вы можете использовать Windows API для программирования сокетов, я бы порекомендовал вам изучить API сокетов BSD (или API сокетов POSIX) и использовать его в ОБА: Windows и Linux .

Windows имеет отличную поддержку API сокетов BSD.

И вы получите большую выгоду от единой кодовой базы вместо того, чтобы кодировать дважды одинаковые функции. Кроме того, BSD / POSIX API также доступен во многих других версиях UNIX (MAC OS X, HP / UP, AI / X, BSD, назовите его).

0 голосов
/ 02 августа 2011

Пока не трать свои деньги - лично я не нашел лучшего руководства по сетевому взаимодействию, чем у Биджа.http://beej.us/guide/bgnet/

0 голосов
/ 02 августа 2011

Есть Сетевое программирование для MS Windows .Я еще не читал это, но обязательно сделаю, потому что это выглядит очень многообещающе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...