Como enviar um soquete de texto em UDP no Linux

Escrito por christopher hanson | Traduzido por pedro antonio
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como enviar um soquete de texto em UDP no Linux
Pacotes personalizados UDP no Linux devem ser codificados na linguagem de programação C/C++ (ANSI image by DBX60 from Fotolia.com)

Quando dois computadores comunicam-se um com o outro, cada um estabelece um soquete. Eles armazenam a conexão de rede no soquete. Há dois tipos comuns de soquetes: TCP e UDP. O segundo é destinado para mensagens curtas. Ao contrário do TCP, ele envia mensagens inteiras em um único bloco, o que o torna não confiável. Os sistemas Linux implementam o UDP quando enviam mensagens curtas através de rede. Elas consistem consistem em textos ou números e são codificadas com a linguagem de programação C/C++.

Nível de dificuldade:
Moderadamente desafiante

Outras pessoas estão lendo

Instruções

  1. 1

    Acesse o terminal apertando "Ctrl", "Alt" e "T" simultaneamente.

  2. 2

    Mude os diretórios para o do código bin. Se ele está na pasta "home", na linha de comando, digite o seguinte:

    cd/home/bin

    Aperte "Enter".

  3. 3

    Crie o arquivo de código fonte para a mensagem de texto UDP digitando o seguinte na linha de comando:

    gedit ./udp.c

    Aperte "Enter". A janela "gedit" aparecerá na tela com o título "udp.c".

  4. 4

    Copie e cole o seguinte código para a janela "gedit":

    include <stdio.h>

    include <sys/types.h>

    include <sys/socket.h>

    include <netinet/in.h>

    include <netdb.h>

    void error(char *msg) { perror(msg); exit(0); }

    int main(int argc, char argv[]) { int sockfd, portno, n; struct sockaddr_in serv_addr; struct hostent server;

    char buffer[256]; if (argc < 3) { fprintf(stderr,"usage %s hostname port\n", argv[0]); exit(0); } portno = atoi(argv[2]); sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) error("ERROR opening socket"); server = gethostbyname(argv[1]); if (server == NULL) { fprintf(stderr,"ERROR, no such host\n"); exit(0); } bzero((char ) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char )server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(portno); if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) error("ERROR connecting"); printf("Please enter the message: "); bzero(buffer,256); fgets(buffer,255,stdin); n = write(sockfd,buffer,strlen(buffer)); if (n < 0) error("ERROR writing to socket"); bzero(buffer,256); n = read(sockfd,buffer,255); if (n < 0) error("ERROR reading from socket"); printf("%s\n",buffer); return 0; }

  5. 5

    Salve o documento clicando em "File" e "Save".

  6. 6

    Feche a janela "gedit" clicando no "X" no canto direito superior. O terminal aparecerá de novo na tela.

  7. 7

    Compile o código UDP digitando na linha de comando:

    gcc - udp.c

    Aperte "Enter". O terminal irá exibir mensagens de status de progresso conforme compila o arquivo.

  8. 8

    Use o programa "udp" para enviar textos através um soquete UDP. Na linha de comando, digite:

    udp <SOME STRING> <SOME ADDRESS>

    Substitua "<SOME STRING>" com a sequência que gostaria de enviar. Troque "<SOME ADDRESS>" pelo endereço de IP de um computador remoto com o qual você tem acesso à rede.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível