Exemplo simples de socket em C/C++
Publicado por kenneth de oliveira (última atualização em 07/02/2018)
[ Hits: 11.647 ]
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;
}
Programa recursivo para obter raiz quadrada
3 EP - Poli USP - Angry Birds (angry bixos)
[GAME-2] Acerte os rortões nas janelas (jogo com gráficos)
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Ubunto não reconhece rede ethernet (0)
Secure boot, artigo interessante, nada técnico. (3)
Instalação dualboot Windows 11 e Debian 13 (11)









