Socket em C/C++ - CLIENT

Publicado por Krownix 24/11/2005

[ Hits: 9.579 ]

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

Ping

Descritor de protocolo

Servidor em C via UDP

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts