Socket em C/C++ - SERVER
Publicado por Krownix 24/11/2005
[ Hits: 12.366 ]
Este é o server, que também demonstra o funcionamento da winsock2.h, este programa fica aguardando uma conexão e quando conectado recebe string pela rede.
#include<iostream> #include<stdlib.h> #include<winsock2.h> using namespace std; int main(void) { int Tamsockaddr; char str_rec[60], str_env[60]; WSADATA WsData; if(WSAStartup(MAKEWORD(2,0), &WsData)!=0) { cout << "Erro ao iniciar DLL" << "\n"; exit(1); } struct sockaddr_in local, s_recv; SOCKET Ouvir; //aguardar a conexao Ouvir=socket(AF_INET, SOCK_STREAM, 0); if(Ouvir<0) { cout << "Erro criaçao do socket" << "\n"; exit(1); } local.sin_family=AF_INET; local.sin_port=htons(1024); local.sin_addr.s_addr=INADDR_ANY; memset(&local.sin_zero,0x00,8); if(bind(Ouvir,(struct sockaddr *)&local,sizeof(local))!=0) { cout << "Erro bind()" << "\n"; exit(1); } //prepara socket para aguardar conexao Tamsockaddr=sizeof(sockaddr); if(listen(Ouvir,1)!=0) { cout << "Erro listen()" << "\n"; exit(1); } //aguarda conexao SOCKET Recv; //recebe dados Recv=accept(Ouvir,(struct sockaddr *)&s_recv, &Tamsockaddr); if(Recv<0) { cout << "Erro ao receber conexao" << "\n"; exit(1); } else { cout << "\n" << "Conexao vinda de:" << "\n" << "Maquina.: " << inet_ntoa(s_recv.sin_addr) << "\n" << "Porta.: " << ntohs(s_recv.sin_port) << "\n"; } cout << "\n\n"; while(recv(Recv, str_rec, sizeof(str_rec),0)) { cout << "\n" << "-" << str_rec << "\n"; } closesocket(Recv); closesocket(Ouvir); WSACleanup(); }
Exemplo Básico de Sockets em C
Simulação de controle de fluxo usando sockets
Connect - um simples programa para atravessar proxys Socks
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Modernização e Avanço do Linux. (23)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (1)
Mensagem quando tento fazer o apt update && apt upgrade no kal... (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta