Я работаю над UDP-коммуникациями с помощью Ada. Этот код должен отправить некоторые данные другому хосту, который будет обрабатывать его. Я пытаюсь отправить начальное сообщение, чтобы начать общение, но оно не работает. Мой код клиента заключается в следующем:Как создать клиент UDP в Ada
with GNAT.Sockets;
use GNAT.Sockets;
with Ada.Text_IO;
with Ada.Exceptions;
use Ada.Exceptions;
procedure Client_Send is
task Send is
entry Start;
entry Stop;
end Send;
task body Send is
Address : Sock_Addr_Type;
Socket : Socket_Type;
Channel : Stream_Access;
begin
accept Start;
-- See comments in Ping section for the first steps.
Address.Addr := Inet_Addr("192.168.0.1");
Address.Port := 7777;
Create_Socket (Socket,Family_Inet,Socket_Datagram);
Bind_Socket (Socket, Address);
Channel := Stream (Socket);
String'Output (Channel, "Hello world");
Free(Channel);
Ada.Text_IO.Put_Line ("Mesnaje Enviado");
Close_Socket (Socket);
accept Stop;
exception when E : others =>
Ada.Text_IO.Put_Line
(Exception_Name (E) & ": " & Exception_Message (E));
end Send;
begin
Initialize (Process_Blocking_IO => False);
Send.Start;
Send.Stop;
Finalize;
end Client_Send;
Я использую Wireshark для просмотра входящего трафика, но он ничего не получает.
Развернуть по теме "не работает ». Я не понимаю, «используя Wireshark для получения сокета». –
Я использую Wireshark для захвата всех пакетов, которые получает моя сеть. Поскольку я не получаю ничего от этого, когда я выполняю клиент, я предполагаю, что он не отправляет его должным образом. –