Exemplo simples de socket em C/C++
Publicado por kenneth de oliveira (última atualização em 07/02/2018)
[ Hits: 11.369 ]
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; }
Ordenar um lista estática sequencial básica (bubblesort)
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)