Descritor de protocolo
Publicado por Enzo de Brito Ferber 29/12/2006
[ Hits: 6.592 ]
Homepage: http://www.maximasonorizacao.com.br
Programa que descreve e dá o nome do serviço se fornecida uma porta, ou dá a porta se fornecido o nome.
Usa as funções getopt(), getservbyname() e getservbyport() da biblioteca padrão do *nix.
#include <stdio.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]){
struct servent *service;
char *proto;
if(argc != 3){
fprintf(stderr, "Usage 1: %s -p <port>\n", argv[0]);
fprintf(stderr, "Usage 2: %s -n <protocol_name>\n", argv[0]);
exit(-1);
}
switch(getopt(argc, argv, "p:n:")){
case 'p':
service = getservbyport(htons(atoi(optarg)), NULL);
printf("Service : %s\n", service->s_name);
printf("Port : %d\n", ntohs(service->s_port));
printf("Protocol: %s\n", service->s_proto);
return 0;
case 'n':
service = getservbyname(optarg, NULL);
printf("Service : %s\n", service->s_name);
printf("Port : %d\n", ntohs(service->s_port));
printf("Protocol: %s\n", service->s_proto);
return 0;
}
return 0;
}
Exemplo Básico de Sockets em C
Simulação de controle de fluxo usando sockets
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (8)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (16)
VOL já não é mais como antes? (28)
Atualizei meu ubuntu e desliguei e ele não inicia corretamente (18)









