2011-08-19 5 views
0

Какая разница под одеялом между использованием:Розетки - IPPPROTO_TCP Vs. 0

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 

и

socket(AF_INET, SOCK_STREAM, 0); 

У меня была причина, чтобы использовать сокет потока внутри приложения и сказали, чтобы использовать 2-ым (который я «Угадай, потому что TCP будет излишним, потому что его встроенный и надежный по умолчанию). Я не был уверен, что сокет, созданный с нулевым окончательным параметром, на самом деле был, поэтому я не решаюсь его использовать.

+2

Возможно, это [сообщение] [1] помогает. [1]: http://stackoverflow.com/questions/5385312/ipproto-ip-vs-ipproto-tcp-ipproto-udp – Simon

ответ

4

Нет никакой разницы. Оба возвращают TCP-сокет, потому что TCP является стандартным протоколом STREAM семейства INET.

3

socket() reference:

Указание от протоколов от 0 причины гнезда(), чтобы использовать неопределенный протокол по умолчанию, подходящий для запрошенного типа сокета.

Протокол по умолчанию для сокета потока, естественно, TCP. Итак, чтобы ответить на ваш вопрос, нет никакой разницы.