c++ UDP Win Linux

261
17 января 2018, 17:16

Я хочу создать обёртку над сокетами в виде 2х простых классов. На подобии QTUdp. http://doc.qt.io/qt-5/qudpsocket.html

Но для его создания мне нужен рабочей код клиента и сервера удп. У кого есть на примете РАБОЧИЙ код(лучшеб через std::.....) UPD: мне нужен АСИНХРОННЫЙ ввод вывод.

То что я находил ещё с 90х годов и даже не компиллируется. Хотелосьбы чоб и на линукс код работал. Использование boost не приемлимо!(ибо он 2 часа устанавливается да ещё и не с 1 раза).

Win компилю VS а линукс QTCreator.

Answer 1

В большинстве случаев, при переделывании простеньких линукосовых "сокет-проектов" в виндовые (таких как этот https://gist.github.com/suyash/0f100b1518334fcf650bbefd54556df9), нужно сделать следующее.

  • удалить линуксовые заголовки

    #include <arpa/inet.h>
    #include <netinet/in.h>
  • добавить виндовый

    #include <winsock2.h>
  • добавить либу Ws2_32.lib в линковку или следующую строку в код

    #pragma comment (lib, "Ws2_32.lib")
  • если при компиляции компилятор ругается на устаревшие функции вида inet_ntoa, в самый верх добавить дефайн

    #define _WINSOCK_DEPRECATED_NO_WARNINGS
  • не забыть добавить вызов iResult = WSAStartup(MAKEWORD(2,2), &wsaData); (пример).

    (сервер после этого как минимум компилируется, линукуется и запускается)

READ ALSO
отсутствуют имена функция в выводе gdb

отсутствуют имена функция в выводе gdb

Использую данную функция для вывода stacktrace

223
Как открыть Qt project из терминала Ubuntu

Как открыть Qt project из терминала Ubuntu

Создал Qt игруКогда открываю из Qt creator все нормально работает

276
Перемещение QWidget C++

Перемещение QWidget C++

Создал QWidget с именем WPunktDialog в QMainWidgetИнтересует вопрос, как заставить QWidget двигатся при нажатии на него и перемещения мышки, т

212