строка 1 использует дескриптор файла подчеркивания для чтения сокета, поэтому он зависит от платформы. Используйте строку 2, так как это переносимый, многоплатформенный способ выполнить то же самое.
Обязательно: если вы делаете что-то серьезное, лучше избегать работы с низкоуровневыми сокетами. Их трудно понять правильно, может показаться, что все работает, но есть много деталей. Эти детали уже решены во многих сетевых фреймворках, и нет причин изобретать велосипед. Я предлагаю витой , это очень хорошо.