Ошибка включения библиотек сокетов в C

#c

#c

Вопрос:

Я нашел множество руководств, помогающих моему процессу в программировании сокетов, однако я очень новичок в C, и когда я пытаюсь выполнить программу, у нее возникают ошибки с

 #include <sys/socket.h>
#include <netinet/in.h>
  

Почему это? Для этого я использую Eclipse. он не будет компилироваться и говорит «в этом проекте существуют ошибки, вы хотите продолжить»

И выделяет эти две строки, очевидно, что у него нет этих файлов для включения.. понятия не имею, как с ними разобраться..

руководство: http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#datagram

РЕДАКТИРОВАТЬ: кодирование в окне wnidows, но должно будет работать / запускаться в окнах Windows и разных версиях Linux

Комментарии:

1. Какая платформа? Кроме того, включаемые файлы обычно выглядят следующим образом: #include <sys/socket.h>

2. Вы используете # перед словом include?

3. Я думаю, что отрицательные голоса здесь немного жесткие.

4. linuxhowtos.org/C_C /socket. htm — это руководство

5. Вопрос в том, используете ли вы систему Unix-y, такую как Linux или Mac OSX, или вы используете Windows?

Ответ №1:

Вам нужно включить либо «», либо <> вокруг включаемых файлов. Вам также нужен символ #.

Например:

 #include <sys/socket.h>    
#include <netinet/in.h>
  

Комментарии:

1. да, они такие — у меня была проблема с редактором

2. Нажмите кнопку «Редактировать» под вашим вопросом и внесите изменения. Также стоило бы добавить, что это за сообщения об ошибках, чтобы мы могли помочь.

Ответ №2:

Эти заголовочные файлы доступны в операционных системах unixy, таких как FreeBSD, Mac OSX и Linux. Поскольку вы используете Windows прямо сейчас, вам придется использовать winsock, который является собственной реализацией BSD sockets API для Windows и имеет другие заголовки и некоторые немного отличающиеся имена функций.

Это подробно описано в одном разделе руководства Beej:http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#windows

Он также упоминает установку cygwin, которая позволила бы вам использовать заголовки, которые вы используете прямо сейчас, но я не уверен, что это будет для вас вариантом.