Socket em C/C++ - CLIENT

Publicado por Krownix 24/11/2005

[ Hits: 10.149 ]

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

Servidor em C via UDP

Encontrar IP

Simples TCP Cliente em C#

Simulação de controle de fluxo usando sockets

Usando sockets para monitorar servidores


  

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