Socket em C/C++ - SERVER
Publicado por Krownix 24/11/2005
[ Hits: 12.657 ]
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();
}
Alucard - scan de redes defensivo
Exemplo de Cliente e Servidor Usando Socket no Linux!
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
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Captação de áudio no zorin linux começa a diminuir com o tempo (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (0)
estou na 22.1 e não é atualizado pra 22.4 via "sudo full-upgrade&... (6)









