Почему Struct не принимается c в Linux?Linux

Ответить
Anonymous
 Почему Struct не принимается c в Linux?

Сообщение Anonymous »


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

Мои проблемы, перечисленные на данный момент:

minor4svr.c 8080 (это команда, используемая для запуска программы) строка 13: структура: команда не найдена строка 14: без знака: команда не найдена строка 14: //: Это каталог строка 15: синтаксическая ошибка рядом с неожиданным токеном `}' строка 15: `};' Я понятия не имею, почему структура может не работать. Я тестировал другой код, который также использовал структуру, он не отображал никаких результатов, но я уверен, что если бы структура была проблемой, она бы возникла.
>
Я хотел бы убедиться, что мой оператор if-else для подтверждения количества аргументов также верен, это была первая ошибка, с которой у меня возникла ошибка, но с изменениями, которые я внес в текущий код, появились сообщения об ошибках. они больше не появляются, так что я думаю, теперь все в порядке.
#include #include #include #include #include // Содержит структуры данных, необходимые для сокета #include // Он содержит константы и структуры, необходимые для адреса интернет-домена. #include // Он содержит определения числовых типов данных, используемых для системных вызовов. // ИНТЕРНЕТ-АДРЕС структура in_addr { беззнаковый длинный s_addr; // Интернет-адрес 32 бита }; структура sockaddr_in { беззнаковое короткое sin_family; // Семейство адресов AF_INET беззнаковый короткий sin_port; // Назначаем порт структура in_addr sin_addr; // Назначаем IP-адрес символ sin_ero[8]; }; int main(int argc, int argv) { если (арг == 4) { //интервал порта = 8080; // номер порта для http int статус, количество; //printf("правильное количество аргументов"); int sockID = сокет (AF_INET, SOCK_DGRAM, 0); /* * семья: целое число в домене связи. * 2 возможных домена * Домен unix: где 2 процесса совместно используют файловую систему. В этом случае семейство будет «AF_UNIX». * Интернет-фомен: в Интернете есть 2 хоста. в этом случае семейство будет «AF_INET». * * тип: это тип связи * SOCK_STREAM: для TCP. * SOCK_DGRAM: для UDP. * * протокол: будет указан протокол * IPPRPTO_TCP, IPPROTO_UDP * Но всегда установлено значение 0, чтобы ОС выбирала соответствующий протокол. */ // ПРИВЯЗКА АДРЕСА К СОЕТУ статус = привязка (sockID, &addrport, размер); /* * sockid: это дескриптор сокета, который мы создали ранее * addrport: это заполненная часть sockaddr_in, приведенная к sockaddr. * размер: это размер sockaddr_in * статус: в случае неудачи вернет -1. */ // Отправляем данные с помощью sendto() count = sendto(sockID, msg, msglen, flags, &serverAddr, addrlen); // Пример: sendto(sockfd, buffer, 1024, 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); КОД ДЛЯ UDP-КЛИЕНТА /* msg: Это сообщение, которое необходимо передать. msgLen: длина сообщения. флаги: специальные параметры, обычно 0. serverAddr: Адрес сервера. addrlen: адрес sockaddr_in. */ // Получение данных с помощью функции Recvfrom() ИСПОЛЬЗУЕТСЯ НА СЕРВЕРНОЙ СТОРОНЕ count = recvfrom(sockID, RecvBuf, bufLen, flags, &clientAddr, addrlen); // Пример: Recvfrom(sockfd, buffer, 1024, 0, (struct sockaddr*)& si_other, &addr_size); КОД ДЛЯ UDP-СЕРВЕРА /* * RecvBuf: это сообщение, которое нужно получить * bufLen: длина сообщения * флаги: специальные параметры, обычно 0 * clientAddr: адрес клиента * addrlen: адрес sockaddr_in */ // ЗАКРЫТИЕ СОЕДИНЕНИЯ статус = закрыть (SockID); /* * sockid: это файловый дескриптор закрываемого сокета. * статус: 0 в случае успеха, -1 в случае ошибки. */ } еще { printf("использование: %d ./minor4svr \n", argv); } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»