Ir ao conteúdo
  • Cadastre-se

Enviar pacotes UDP com C++ Builder 6


surfway

Posts recomendados

Ola pessoal,

Preciso de ajuda com um software simples para envio de pacotes UDP na rede.

A principio preciso fazer rodar e enviar um pacote para rede. Falando de Envio de pacotes, creio que não há grandes dificuldades.

Eu criei um Socket, criei a Estrutura contendo as informações do Host e porta e usei a função sendto para enviar o pacote.

Preciso enviar um pacote no formato “ 00 10 11 02 00 12 09”, onde ativará uma função em um microcontrolador e controlará um produto.

Confesso que fiquei um pouco em duvida no uso da função send() e sendto(). Percebi que posso optar em fazer a conexão do Socket ou não, usando protocolo UDP.

Compilei o software e não apresentou erros. porém não esta enviando tal mensagem.

Eu criei uma função dentro da arquivo main.cpp chamado configurasocket.

void __fastcall TForm1::ConfiguraSocket()

Criei o socket da seguinte forma:

if(( SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == INVALID_SOCKET)

{

ShowMessage("Erro ao criar o socket!");

}

Para protocolo UDP.

A estrutura também criada é a seguinte:

RecvAddr.sin_family = AF_INET;

RecvAddr.sin_port = htons(Port); onde Port está definido int Port=5000;

RecvAddr.sin_addr.s_addr = inet_addr("192.168.0.255");

E o envio de pacotes:

strcpy(SendBuf,Edt_msg->Text.c_str());

BufLen = Edt_msg->Text.Length();

envio = sendto(SendSocket,SendBuf,BufLen,0,(SOCKADDR *) &RecvAddr,sizeof(RecvAddr));

if (envio == SOCKET_ERROR) {

ShowMessage("Msg não enviada");

} else {

ShowMessage("Msg Enviada com Sucesso!");

}

O resto é fechar o socket e outras coisas a mais.

Variaveis:

char SendBuf[1024];

int BufLen;

Nas funções das documentações, vejo muito na função sendto o uso de um ponteiro. *SendBuf por ex.

Isso pode influenciar? Tendo em vista que estou fazendo tudo dentro da função e não carrego e nem importo nada para dentro, por enquanto.

Uma pergunta:

Será necessario fazer uma conexao no servidor?

Aguardo.

valeu galera

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...