Exemplo simples de socket em C/C++
Publicado por kenneth de oliveira (última atualização em 07/02/2018)
[ Hits: 11.407 ]
Homepage: https://br.linkedin.com/in/kenneth-de-oliveira/
Apenas uma breve demonstração simples do assunto sockets em C/C++
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<errno.h> #include<unistd.h> /*headrs para socket*/ #include<sys/socket.h> #include<netinet/in.h> #include<sys/types.h> #include<sys/signal.h> #include<arpa/inet.h> #include<netdb.h> #define PORT 2222 //nossa porta #define LENGTH 4096 int main(void) { struct sockaddr_in local; struct sockaddr_in remoto; int socketd, meucliente, cliente, slen; char buffer[4096]; socketd = socket(AF_INET, SOCK_STREAM, 0); if(socketd == -1) { perror("\nSocketd error"); exit(1); } else{ printf("\nSocket realizado com sucesso!\n"); } local.sin_family = AF_INET; local.sin_port = htons(PORT); memset(local.sin_zero,0x0,8); // bind() função que faz conexão do ip com a porta if(bind(socketd,(struct sockaddr *)&local,sizeof(local)) == -1) { perror("\nBind error"); exit(1); } //listen() função deixa seu servidor na escuta, no meu caso configuro para 2 conexão listen(socketd,2); //accept() função que faz conexão de seu socket com o do cliente meucliente = sizeof(remoto); if((cliente = accept(socketd,(struct sockaddr *)&remoto, &meucliente))==-1) { perror("\nAccept error"); exit(1); } //função da #include<string.h> concatena s2 em s1 strcpy(buffer,"Welcome cliente\n\0"); /*srlen() ler todos caractere de uma string send() funcão de mensagem */ if(send(cliente,buffer,strlen(buffer),0)) { printf("\nAguardando Mensagem do cliente...\n"); memset(buffer, 0x0, LENGTH); //limpa buffer da mensagem while(1) { //recv função de mensagem if((recv(cliente,buffer,LENGTH,0)) > 0) { printf("\nMensagem recebida = %s\n", buffer); buffer[slen] = '\0'; close(cliente); break; } } } printf("\nServidor encerrado!\n"); close(socketd); return 0; }
Jogo defutebol simples (com gráficos)
Cálculo de logaritmo de um número por um terceiro método em C
Busca, inserção e remoção de elementos numa lista
Nenhum comentário foi encontrado.
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Redes Wifi não aparecem no Linux Mint cinnamon (2)
Erro ao atualizar o archlinux [RESOLVIDO] (2)