Socket em C/C++ - CLIENT

Publicado por Krownix 24/11/2005

[ Hits: 9.945 ]

Download client.cpp




Programa que exemplifica o uso da biblioteca winsock2.h para desenvolver um client em c/c++. Este programa transmite uma string pela rede

  



Esconder código-fonte

#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;
}
   

Scripts recomendados

Descritor de protocolo

Exemplo Básico de Sockets em C

Simples TCP Cliente em C#

Calcular Broadcast e IPs disponíveis

Encontrar IP


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts