Есть ли способ отправить пакет на адрес 255.255.255.255 с помощью TCP?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ отправить пакет на адрес 255.255.255.255 с помощью TCP?

Сообщение Anonymous »


Я пытался понять широковещательную и многоадресную рассылку и узнал, как с помощью UDP мы можем отправлять широковещательные пакеты на адрес 255.255.255.255. Однако что мы можем сделать, если делаем то же самое через TCP?

Вот мой текущий код:

#include #include #include #include #include #include интервал основной() { const char* BroadcastAddress = "255.255.255.255"; int BroadcastPort = 12345; // Используем определенный номер порта int udpSocket = сокет (AF_INET, SOCK_DGRAM, 0); если (udpSocket == -1) { perror("Не удалось создать сокет"); возврат 1; } // Включаем трансляцию на сокете интервал трансляцииEnable = 1; if (setsockopt(udpSocket, SOL_SOCKET, SO_BROADCAST, &broadcastEnable, sizeof(broadcastEnable)) == -1) { perror("Не удалось включить трансляцию"); // закрыть(udpSocket); возврат 1; } // Устанавливаем адрес назначения структура sockaddr_in BroadcastAddr; memset(&broadcastAddr, 0, sizeof(broadcastAddr)); BroadcastAddr.sin_family = AF_INET; BroadcastAddr.sin_addr.s_addr = inet_addr(broadcastAddress); BroadcastAddr.sin_port = htons (broadcastPort); // Сообщение для трансляции const char* message = "Это широковещательное сообщение"; // Отправляем сообщение на широковещательный адрес if (sendto(udpSocket, message, strlen(message), 0, (struct sockaddr*)&broadcastAddr, sizeof(broadcastAddr)) == -1) { perror("Не удалось отправить широковещательное сообщение"); } // Закрываем сокет закрыть (udpSocket); вернуть 0; } Я попробовал изменить SOCK_DGRAM на SOCK_STREAM, чтобы сделать его TCP-соединением. Запуск программы не отправляет никаких пакетов, как видно из Wireshark, работающего в фоновом режиме, без каких-либо изменений.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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