Socket em C/C++ - CLIENT
Publicado por Krownix 24/11/2005
[ Hits: 10.349 ]
Programa que exemplifica o uso da biblioteca winsock2.h para desenvolver um client em c/c++. Este programa transmite uma string pela rede
#include<iostream> #include<stdlib.h> #include<winsock2.h> using namespace std; int main(int argc, char *argv[]) { char str_send[60]; if(argc < 3) { std::cout << "Falta de parametros: " << argv[0] << "<host> <port>" << "\n"; exit(1);} WSADATA WsData; if(WSAStartup(MAKEWORD(2,0), &WsData)!=0) { cout << "Erro iniciar a DLL" << "\n"; exit(1); } SOCKET Send; struct servent *servico; struct hostent *nomehost; struct sockaddr_in alvo; servico=getservbyport(htons(atoi(argv[2])),"tcp"); nomehost=gethostbyname(argv[1]); if(!nomehost) { cout << "Impossivel resolver nome de " << argv[1] << "\n"; exit(1); } Send=socket(AF_INET, SOCK_STREAM,0); alvo.sin_family=AF_INET; alvo.sin_port=htons(atoi(argv[2])); memcpy(&alvo.sin_addr.s_addr, nomehost->h_addr, nomehost->h_length); memset(&alvo.sin_zero, 0x00,8); if(connect(Send,(struct sockaddr *)&alvo,sizeof(alvo))) { cout << "Impossivel COnectar" << "\n"; exit(1); } else { cout << "Conectado em: " << "\n" << "Maquina.: " << argv[1] << "\n" << "Porta.: " << argv[2] << ((servico)?servico->s_name:"desconhecido") << "\n"; } for(;;) { cout << ":"; gets(str_send); send(Send, str_send, sizeof(str_send),0); cout << "\n"; } closesocket(Send); WSACleanup(); return 0; }
Simulação de controle de fluxo usando sockets
Exemplo de sockets: um client e um server bem simples
Nenhum comentário foi encontrado.
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (1)
Como listar os arquivos em "bloquin... (0)
Como vencer a procrastinação? (8)
Adicional de convivdado em linux somente linha de comando (3)