Socket em C/C++ - CLIENT

Publicado por Krownix 24/11/2005

[ Hits: 10.078 ]

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

Subdomain Finder

Cliente em C via UDP

ChangePassword

Descritor de protocolo

Fractal


  

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