Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с UDP. / 25 сообщений из 58, страница 1 из 3
06.11.2019, 14:45
    #39885787
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
Я открыл новый проект в 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
06.11.2019, 15:02
    #39885801
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
Штатных средств у С/С++ нет, в виндовсе свое API для этого, в линуксе - свое. По большому счету там все достаточно просто: открыл сокет и слушай его. Есть небольшая разница в синтаксисе, но его можно привести к общему знаменателю с помощью препроцессора.

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

UDP не предусматривает никаких "соединений".
...
Рейтинг: 0 / 0
06.11.2019, 15:21
    #39885812
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
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
06.11.2019, 15:25
    #39885816
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
Надо #include соответствующие. Под виндовс еще WSA инициализировать один раз.
...
Рейтинг: 0 / 0
06.11.2019, 15:28
    #39885817
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
Тут пример кода под виндовс.
...
Рейтинг: 0 / 0
06.11.2019, 15:32
    #39885819
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
Dima T
Тут пример кода под виндовс.

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

я не знаю как. у меня нет опыта работы в линукс.
...
Рейтинг: 0 / 0
06.11.2019, 17:42
    #39885917
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
jenya7,
Может тебе надо кроссплатформенно? Сразу винда и линукс? Тогда Qt есть вариант.
...
Рейтинг: 0 / 0
06.11.2019, 17:44
    #39885918
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
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
06.11.2019, 17:58
    #39885921
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с UDP.
PetroNotC Sharp
jenya7,
Может тебе надо кроссплатформенно? Сразу винда и линукс? Тогда Qt есть вариант.


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


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