Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
surfway

Enviar pacotes UDP com C++ Builder 6

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×