powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с UDP.
25 сообщений из 58, страница 1 из 3
Работа с UDP.
    #39885787
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я открыл новый проект в Visual Studio - Visual C++ -> Cross Platform -> Linux -> Console Application
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <cstdio>

int main()
{
    printf("hello from PROJ1!\n");
    return 0;
}




какую библиотеку мне подключить, чтоб открыть UDP соединение?
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885801
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штатных средств у С/С++ нет, в виндовсе свое API для этого, в линуксе - свое. По большому счету там все достаточно просто: открыл сокет и слушай его. Есть небольшая разница в синтаксисе, но его можно привести к общему знаменателю с помощью препроцессора.

Напиши сначала под какую-нибудь ОС, затем подправь под другую.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885802
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

UDP не предусматривает никаких "соединений".
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885812
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Штатных средств у С/С++ нет, в виндовсе свое API для этого, в линуксе - свое. По большому счету там все достаточно просто: открыл сокет и слушай его. Есть небольшая разница в синтаксисе, но его можно привести к общему знаменателю с помощью препроцессора.

Напиши сначала под какую-нибудь ОС, затем подправь под другую.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
#define MESSAGES_PORT 8101

struct sockaddr_in RxDataAddr;
int messagesSocket;

int messagesSocketCreation(void)
{
	int status;
	int dontblock;

	/* Build socket address */
	bzero((char *)& RxDataAddr, sizeof(RxDataAddr));
	RxDataAddr.sin_len = sizeof(RxDataAddr);
	RxDataAddr.sin_family = AF_INET;
	RxDataAddr.sin_addr.s_addr = INADDR_ANY;
	/* UDP port number to match for the received packets */
	RxDataAddr.sin_port = htons(MESSAGES_PORT);

	/* Create socket */
	if ((messagesSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
	{
		printf(" cannot open messages recv socket\n");
		return (NULL);
	}
	else
	{
		printf("RX socket created %d \n", messagesSocket);
	}

	/* Bind socket to local address */
	if (bind(messagesSocket, (struct sockaddr *) &RxDataAddr, sizeof(RxDataAddr)) != 0)
	{
		//perror("messages bind error\n");
		printf("RX socket bind error\n");
		status = ERROR;
	}
	else
	{
		printf("RX socket binded \n");
	}

	// make the rcvFrom non block 
	dontblock = 1;
	status = ioctl(messagesSocket, FIONBIO, (char*)dontblock);
	if (status == ERROR)
	{
		printf("messages IOCTL ERROR ");
		printf("messages IOCTL errno = %d\n", errnoGet());
	}

	return 0;
}


сплошные ошибки.
авторSeverity Code Description Project File Line Suppression State
Error (active) E0020 identifier "bzero" is undefined
Error (active) E0070 incomplete type is not allowed
Error (active) E0070 incomplete type is not allowed
Error (active) E0070 incomplete type is not allowed
Error (active) E0070 incomplete type is not allowed
Error (active) E0020 identifier "AF_INET" is undefined
Error (active) E0070 incomplete type is not allowed
Error (active) E0020 identifier "INADDR_ANY" is undefined
Error (active) E0070 incomplete type is not allowed
Error (active) E0020 identifier "htons" is undefined
Error (active) E0020 identifier "socket" is undefined
Error (active) E0020 identifier "SOCK_DGRAM" is undefined
Error (active) E0020 identifier "bind" is undefined
Error (active) E0020 identifier "TNICADataAddr" is undefined
Error (active) E0020 identifier "ERROR" is undefined
Error (active) E0020 identifier "ioctl" is undefined
Error (active) E0020 identifier "FIONBIO" is undefined
Error (active) E0020 identifier "ERROR" is undefined
Error (active) E0020 identifier "errnoGet" is undefined
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885816
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо #include соответствующие. Под виндовс еще WSA инициализировать один раз.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885817
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут пример кода под виндовс.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885819
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Тут пример кода под виндовс.

ругается на
#include <winsock.h>
не видит

может надо указать откуда брать библиотеки?
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885825
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно из-за
jenya7
Я открыл новый проект в Visual Studio - Visual C++ -> Cross Platform -> Linux -> Console Application

Это что-то новое в студии, у меня такого нет в VS2017.
Попробуй создать обычный проект "Windows Console Application"
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885827
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
Dima T
Тут пример кода под виндовс.

ругается на
#include <winsock.h>
не видит

откуда window'ые инклюды в Linux проекте?
jenya7
Я открыл новый проект в Visual Studio - Visual C++ -> Cross Platform -> Linux -> Console Application
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885828
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Наверно из-за
jenya7
Я открыл новый проект в Visual Studio - Visual C++ -> Cross Platform -> Linux -> Console Application

Это что-то новое в студии, у меня такого нет в VS2017.
Попробуй создать обычный проект "Windows Console Application"

Это нужно добавлять . Я специально добавил чтоб писать приложение под Линукс.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885832
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

ты б сначала хоть букварь по языку открыл, прежде чем лезть куда-то
тынц
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885835
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum
jenya7,

ты б сначала хоть букварь по языку открыл, прежде чем лезть куда-то
тынц

я работаю на других платформах с UDP, TCP, TFTP, sockets уже пару лет.
в данном случае на инклюды
#include <sys/socket.h>
#include <netinet/in.h>
ругается - не видит их.

В тот момент когда проект увидит инклюды нет проблем, я уже все давно написал.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885836
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скажем #include <sys/types.h> проект видит
пошел в папку инклюдов
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include
нет там socket.h
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885847
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
скажем #include <sys/types.h> проект видит
пошел в папку инклюдов
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include
нет там socket.h

Linux проект обычно создается для Linux машин
даже если ты накидаешь в Windows заголовочных файлов для Linux, то я сильно сомневаюсь, что ты соберешь что-то, в принципе. Даже если соберешь, то хрен запустишь, а значит и отладить не сможешь.

Если тебе нужно под Linux, то подними/найди сначала Linux машину, настрой на ней все необходимые компиляторы и библиотеки, ssh, затем настрой в VS отладчик для удаленной разработке на этой Linux машине и только потом, когда у тебя начнет хотя бы собираться Hello World, приступай к работе над UDP.

Если у тебя Window 10, то в ней есть подсистема Windows для Linux .

Если все это делать лень, то ставь Visual Studio Code на Linux и работай в нативной nix-среде
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885849
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum

Если все это делать лень, то ставь Visual Studio Code на Linux и работай в нативной nix-среде


ставить именно на Линукс? они дают несколько опций скачки. Можно скачать и под Windows.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885854
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
ставить именно на Линукс? они дают несколько опций скачки. Можно скачать и под Windows.

какой смысл ставить Visual Studio Code для Windows, если у тебя, судя по всему, уже целая Visual Studio установлена?

Если Linux не принципиален, то бери и пользуйся WinSocket API и забудь про все эти мытарства, только проект создай по нормальному, как тебе уже предложили ранее
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885860
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если для linux, да еще из MSVS. Тогда, может, boost.asio?
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885862
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum
jenya7
ставить именно на Линукс? они дают несколько опций скачки. Можно скачать и под Windows.

какой смысл ставить Visual Studio Code для Windows, если у тебя, судя по всему, уже целая Visual Studio установлена?

Если Linux не принципиален, то бери и пользуйся WinSocket API и забудь про все эти мытарства, только проект создай по нормальному, как тебе уже предложили ранее


мне как раз линукс очень принципиален - я должен портировать проект на линукс (с vxWorks).
Visual Studio Code это полная среда разработки? а как там к периферии обращаться? у меня на плате есть UART, SPI.
можно подключить BSP производителя платы к проекту?
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885872
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885896
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum

спасибо. выглядит внушительно. остается установить на линуксе и попробовать.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885908
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7мне как раз линукс очень принципиален - я должен портировать проект на линукс (с vxWorks).

Тогда зачем ты вообще в Visual Studio полез? Запускай Linux и работай в нём.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885913
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

jenya7мне как раз линукс очень принципиален - я должен портировать проект на линукс (с vxWorks).

Тогда зачем ты вообще в Visual Studio полез? Запускай Linux и работай в нём.

я не знаю как. у меня нет опыта работы в линукс.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885917
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,
Может тебе надо кроссплатформенно? Сразу винда и линукс? Тогда Qt есть вариант.
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885918
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
nickname = nick;
  socket = new QUdpSocket(this);
  _port = port;
  socket->bind(QHostAddress::Any, port);
  // тут еще какой то код конструктора //
  connect(socket, SIGNAL(readyRead()), SLOT(read()));
}
...
Рейтинг: 0 / 0
Работа с UDP.
    #39885921
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
jenya7,
Может тебе надо кроссплатформенно? Сразу винда и линукс? Тогда Qt есть вариант.


там такой геморой с этой кроссплатформеностью. я не смог заставить проект компилиться под линукс. это если писать на виндоус. а если установить на линукс то может быть. не проверял.
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с UDP.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]