Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ancora problemi di socket!!
Forum - C/C++ - Ancora problemi di socket!!

Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 0:45
Giovedì, 23/08/2007
Rieccomi a chiedere qualche info xD , inpratica sto facendo una spece di programmino scemo ke si connette ai canali di irc e dovrebbe sia scrivere ke leggere ciò ke dicono ji altri .... fino a ke sn io ke scrivo tutto apposto quando si tratta di leggere nada nn va nulla , e questo xkè quando diciamo si avvia il thread x leggere a na certa mi da tipo errori di connessione e crasha :S so ke forse è chiedervi un pò troppo ma se avete tempo da perdere vi posto il code che sto usando x leggere , se poi preferite vi do direttamente tutto quanto compreso di main :S

-----------------------------------------------
CODE:

DWORD IrcSimuletor::Recived(LPDWORD IpdwParam)
{
    SOCKET miosock,client;
    struct sockaddr_in miosock_addr,client_addr;
    WORD p;
    int len(char *);
    int lun, err=0;
    char buffer[2000];
    int re;
    LPHOSTENT host;
    p=MAKEWORD(2,0);
    miosock=socket(PF_INET,SOCK_STREAM,0);
    miosock_addr.sin_family=PF_INET;
    miosock_addr.sin_port=htons(porta);
    host=gethostbyname (server);
    if (host==NULL){
        err=WSAGetLastError();
        printf ("Errore host\t%d",err);
        return (1);
    }

    miosock_addr.sin_addr = *((LPIN_ADDR)*host->h_addr_list);
    lun=sizeof(struct sockaddr);
        err=bind(miosock,(struct sockaddr*)&miosock_addr,sizeof(struct sockaddr_in));
    err=listen(miosock,1);
    lun=sizeof (struct sockaddr);
    client=accept(miosock,(struct sockaddr*)&client_addr,&lun);
    if (err!=0)
    printf ("Errore connessione");
    memset(buffer, '\0', BUFSIZ);
    while(1)
    {
        re = recv(miosock, buffer, sizeof(buffer), 0);
        buffer[re] = '\0';
        printf("%s",buffer);
    }
    closesocket (client);
    closesocket(miosock);
    WSACleanup();
    
    return 0;
}


FINE
-----------------------------------------------

Se potete aiutarmi ve ne sarei molto grato dato ke oramai sn proprio bloccato e nn so come andare avanti uff :S

PM Quote
Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 16:15
Venerdì, 24/08/2007
Problema risolto xD

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:55
Mercoledì, 05/09/2007
E come l'hai risolto?


Il mio blog: https://piero.dev
PM Quote
Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 14:01
Giovedì, 06/09/2007
In Pratica io ho la classe IrcSimuletor dove ci sta la funzione connect e receved
e all'inizio pensavo ke fosse necessario avere due funzioni x leggere e scrivere poi ho capito ke in questo modo cmq doveva andare a connettersi due volte ad irc e quindi spreco di tempo e tutto lol :D x leggere bastava mettere dentro la funzione connect la parte:

while (1)
{
   len=recv(.......);
   buffer[len]='\0';
   printf("%s \r\n",buffer);
   ........
   ........
   tutto il resto :D
   ........
}

mi stavo complicando la vita x niente lol

PM Quote