Независимо от того, используете ли вы winsock или posix, какую функцию вы используете для создания сетевого сокета, вам необходимо указать семейство адресов, протокол и «тип» сокета. Однако, похоже, этот параметр имеет очень мало значения для программиста, и его также можно определить, посмотрев на другие два параметра. Так в чем дело? Есть ли какая-то историческая причина? Как викинга использовали этот параметр, чтобы заманить английский из своих замков?Что такое тип сокета?
ответ
Для udplite протокола, например, сокет создается следующим образом:
sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);
SCTP розетки:
sctp_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
sctp_socket = socket(PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
Другими словами, третий аргумент socket
вызовов не всегда выведенный из первых двух.
я склонен согласиться с вами, что type
аргумента в основном избыточный (хотя я не просматривал full list of internet protocols, я могу отсутствовать некоторые частные случаи) для одного важного случая, за исключением: сырые сокеты (SOCK_RAW
). У них на самом деле нет протокола, связанного с ними, поэтому было бы бессмысленно размещать эту информацию в аргументе .
Спасибо, SOCK_RAW определенно стоит изучить. Но я думаю, вы можете забыть о списке протоколов. Доступно только несколько избранных. Здесь есть интересный параграф http://man7.org/linux/man-pages/man2/socket.2.html ctrl + f «Протокол указывает« если вам интересно, конечно. – Pyjong
Хорошо, что получилось неправильно. Я должен был сказать: «лишь немногие могут использоваться в качестве параметра для этой конкретной функции». Спасибо, что ты меня на правильном пути. – Pyjong
- 1. Что такое захват сокета?
- 2. Что такое тип тегов?
- 3. Что такое тип?
- 4. Что такое тип данных?
- 5. Что такое MIME-тип
- 6. Что такое универсальный тип?
- 7. Что такое тип возврата «()»?
- 8. Что такое "[тип объекта]"
- 9. Что такое тип SOCKET?
- 10. Что такое sint32 тип
- 11. Что такое динамический тип
- 12. Что такое? тип?
- 13. Что такое тип?
- 14. Что такое тип Vec3b?
- 15. Что такое тип записи?
- 16. Что такое стереофонический тип
- 17. Что такое «тип»?
- 18. Что такое абстрактный тип?
- 19. Что такое тип орда?
- 20. Что такое переменная сокета в socket.io
- 21. Что такое тип языка для
- 22. Что такое «двойной» тип строки?
- 23. Что такое безопасный тип .net?
- 24. C# Что такое тип System.Object [*]?
- 25. Что такое тип углового 2?
- 26. Что такое тип буфера Python?
- 27. Что такое общий тип возврата
- 28. Тип CAGradientLayer - что такое точка?
- 29. Шаблоны проектирования: что такое тип
- 30. Что такое тип этих выражений?
Существует много типов «сокетов», а не только сокетов TCP или UDP. Некоторые из них используют третий аргумент для вызова сокета. –
@Someprogrammerdude Не могли бы вы привести пример различных протоколов, используемых с несколькими типами носков, и указать на разницу? – Pyjong