Windows низкоуровневое программирование сокетов? - PullRequest
1 голос
/ 25 октября 2011

У меня небольшая путаница в отношении того, насколько низкоуровневый winsock? Я хочу написать ОЧЕНЬ простую клиент-серверную программу для Windows. Я действительно не хочу использовать раздутый TCP или даже UDP, просто что-то чрезвычайно простое и с низкой задержкой. Winsock будет идеальным для этого? Или winsock - это то же самое, что сетевые функции Windows, просто все упаковано (и, возможно, медленнее)? Буду ли я лучше использовать PInvoke на встроенных сетевых функциях Windows?

Ответы [ 2 ]

3 голосов
/ 26 октября 2011

Winsock, TCP, UDP и любая хорошо принятая сетевая библиотека, построенная на их основе, будут сопоставимы по производительности.

Используйте тот, который легче всего выполнить вашу работу.

2 голосов
/ 26 октября 2011

Прежде всего, можно написать совершенно новый протокол без реализации сетевого драйвера. Для этого у вас есть необработанные сокеты . В настольных Windows они очень ограничены (найдите «ограничения»).

Это возможно, но не рекомендуется. Не изобретайте колесо и выбирайте между UDP и TCP, пока не убедитесь, что вам нужно что-то более сложное (но не более простое).

Для отправки данных по сети (в отличие от прямой кабельной связи между двумя компьютерами) вам необходим протокол IP. Для отправки ваших данных нужному приложению вам необходим транспортный протокол (UDP, TCP и другие). UDP является почти самым простым из возможных, потому что это было его главной целью при разработке. UDP обеспечивает дополнительную адресацию (номер порта в дополнение к IP-адресу для доставки ваших данных в правый сокет), границы пакетов (поле «длина») и необязательную контрольную сумму. Вот и все, и это минимальный список возможностей. Возьми его и реализуй все, что тебе нужно, по UDP.

Далее, если вам нужно быть уверенным, что ваши пакеты доставлены, а не тихо отброшены куда-то по пути (надежность), доставлены в правильном порядке, если вы хотите знать, что кто-то все еще слушает вас на противоположном конце ( подключение) и другие вещи, реализованные лучшими специалистами, с оборудованием, адаптированным к этой реализации, проверенным миллионами в течение десятилетий, с большим количеством документации, доступной почти на всех возможных платформах - используйте TCP.

...