Как отправить UDP сообщение в балерину?

Хотелось бы узнать, можно ли отправлять и получать UDP-сообщения у балерины. В основном в Java я могу сделать следующее, используя Datagram Socket.

            DatagramPacket packet = new DatagramPacket(
                    payload.getBytes(),
                    payload.length(),
                    InetAddress.getByName(address),
                    port
            );
            socket.send(packet);

Я хочу повторить ту же функциональность в балерине для реализации одноранговой сети.

1 ответ

Решение

Отправка UDP-сообщений пока не поддерживается. Существует стандартная библиотека сокетов балерины, которая поддерживает прослушиватель и клиент уровня TCP, которые можно использовать для отправки / получения сообщений TCP, как показано ниже. В будущем планируется добавить поддержку UDP и с этой библиотекой сокетов.

import ballerina/io;
import ballerina/socket;

public function main() {
    socket:Client socketClient = new({ host: "localhost", port: 61598,
        callbackService: ClientService });
    string content = "Hello Ballerina";
    byte[] payloadByte = content.toByteArray("UTF-8");

    var writeResult = socketClient->write(payloadByte);
    if (writeResult is error) {
        io:println("Unable to written the content ", writeResult);
    }
}

См. https://ballerina.io/learn/by-example/tcp-socket-listener-client.html

Другие вопросы по тегам