Socket em C/C++ - SERVER
Publicado por Krownix 24/11/2005
[ Hits: 12.553 ]
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(); }
Robo HTTP usando socket e código multiplataforma
Simples servidor http com concorrência feito em C
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Mikrotik não abre o webmail-segur... da Locaweb (11)
Olha que maravilha, Arch no C2D 7400, 2GB de RAM, vídeo onboard e no G... (3)
Instalação de Ubuntu em SSD (interno) como se fosse um dispositivo ext... (1)