Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    [code]
    >gcc -o serve.exe serve.o c:\
    MinGWStudio\MinGW\lib\libwsock32.a
    [code]

    sebra funionare!

    ma quando lo vado ad eseguire mi da la finesta vuota
    e anche l'originale mi fa lo stesso (anzi mi va acapo all inifito)... ma prima faceva :master: ?
    le scritte apparivano!!!

    ok, spengo il pc e ritento, forse sarò più fortunato!

    grazie a tutti!! vi farò sapere!

  2. #12
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    Originariamente inviato da dekdek
    Ma sta cosa:

    C:\MinGWStudio\MinGW\bin\..\lib\gcc-lib\mingw32\3.3.1\..\..\..\..\mingw32\bin\ld
    .exe

    e' normale?
    è un gran speco!

  3. #13
    Originariamente inviato da unit1
    [code]
    >gcc -o serve.exe serve.o c:\
    MinGWStudio\MinGW\lib\libwsock32.a
    [code]

    sebra funionare!

    ma quando lo vado ad eseguire mi da la finesta vuota
    e anche l'originale mi fa lo stesso (anzi mi va acapo all inifito)... ma prima faceva :master: ?
    le scritte apparivano!!!

    ok, spengo il pc e ritento, forse sarò più fortunato!

    grazie a tutti!! vi farò sapere!
    Puoi postare da qualche parte il codice, se è troppo lungo meglio che lo metti su un sito.

    Se non hai un sito puoi usare qualcosa tipo questo
    http://authors.aspalliance.com/aylar/PasteCode.aspx

  4. #14
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    li codice lo ho trovato mentre giravo in cerca di informazioni sul wiinsock:
    codice:
    /* LISTATO C/C++ DI MIOSERVER
       REALIZZATO DA BARTOLOMEO DAVIDE BERTINETTO
       HOME: HTTP://DIGILANDER.IOL.IT/ALLEGRO.H
       E-MAIL: INFOCALIMERO@LIBERO.IT
    */  
    
    #include <stdio.h>
    #include <winsock.h>
    #define ESC	0x1b
    
    // Fino a qui nulla di speciale, importo le librerie 
    //che servono e stabilisco quale tasto è l'esc...
    //Cosa importante è ricordarsi di linkare la libreria libwsock32.a 
    //(nel caso di DevC++, per gli altri compilatori non so se si chiama cosi)
    
    int main (void)
    {
    SOCKET socklis,sockacp;
    sockaddr_in socklis_in,sockacp_in;
    WORD wVersionRequested;
    WSADATA wsaData;
    int err, backlog=1, addrlen;
    char recvb;
    
    
    
    // Qui sopra vengono dichiarate le veriabili, da notare le 
    // variabili di tipo SOCKET; i socket sono quegli strumenti 
    // che servono per comunicare nella rete, possiamo immaginarli 
    //come un canale tra 2 punti, una volta aperto e 
    // accettato, puo essere usato per inviare dati.
    // altra cosa da notare è la wsaData, in seguito verrà usata per verificare 
    // la versione della winsock.dll installata sulla macchina.
    
    wVersionRequested = MAKEWORD( 2,0 );
    printf("Miniserver su porta 4444\n\n");
    WSAStartup( wVersionRequested, &wsaData );
    
    // Con WSAStartup() la winsock.dll viene inizializzata, 
    //indicando la versione richiesta
    // e la locazione della strusttura wsaData, che verrà 
    //usata per immagazzinare i dati della dll
    
    socklis = socket (PF_INET, SOCK_STREAM, 0);
    socklis_in.sin_family = PF_INET;
    socklis_in.sin_port = htons (4444);
    socklis_in.sin_addr.s_addr = INADDR_ANY;
    
    // Una volta inizializzata la winsock.dll, viene aperto il 
    //socket, specificando il protocollo usato
    // (PF_INET è il TCP/IP), la porta locale e l'indirizzo locale
    
    bind (socklis, (struct sockaddr*)&socklis_in, sizeof(struct sockaddr_in));
    listen(socklis, backlog);
    printf("In attesa di una connessione...\n");
    
    // Ora il socket deve essere inizializzato con la funzione bind(), 
    // in questo modo viene inizializzata con i valori contenuti nella 
    // struttura socklis_in, definiti prima (protocollo, porta e indirizzo)
    // Dopodiche si mette in attesa il socket, con la funzione listen()
    
    addrlen=sizeof(struct sockaddr);
    sockacp=accept(socklis, (struct sockaddr*)&sockacp_in, (LPINT)&addrlen);
    
    // Per preparare il socket ad accettare una connessione, 
    // si usa la funzione accept() che, come parametri richiede 
    // il socket in ascolto e una struttura tipo sockaddr_in che verrà
    // riempita dai dati che il client invierà al server.
    
    send(sockacp, "Scrivi qualcosa e verrà inviato alla finetra dos remota. Premi 'esc' per terninare la connessione.\r\n", strlen("Scrivi qualcosa e verrà inviato alla finetra dos remota. Premi 'esc' per terninare la connessione.\r\n"), 0);
    
    // frase visualizzata su telnet remoto
    
    printf("In attesa di ordini...\n");
    
    // frase visualizzata nella finetra dos del client
    
      while(recvb!=ESC)
    {
     recv(sockacp, &recvb, 1, 0);
     printf("%c",recvb);
            }
    
    // invia un messaggio da telnet alla dinestra dos in remoto
    // Termina il ciclo dopo aver premuto il tasto 'esc' da telnet
    
    closesocket(sockacp);
    closesocket(socklis);
    return(0);
    }
    in effetti adesso lo compila e quando lo eseguo le scritte le da. avendo un solo pc non posso testare anche il client

    cioè, mi spiego: se apro prima il server e poi il client sullo stesso pc, il server non se ne accorege!
    credo possa essere un conflitto sulla porta dell stesso pc.
    client:
    codice:
    /* LISTATO C/C++ DI MIOCLIENT
       REALIZZATO DA BARTOLOMEO DAVIDE BERTINETTO
       HOME: HTTP://DIGILANDER.IOL.IT/ALLEGRO.H
       E-MAIL: INFOCALIMERO@LIBERO.IT
    */  
    
    
    
    
    #include <stdio.h>
    #include <winsock.h>
    #define ESC	0x1b
    
    // Fino a qui nulla di speciale, importo le librerie 
    //che servono e stabilisco quale tasto è l'esc...
    //Cosa importante è ricordarsi di linkare la libreria libwsock32.a 
    //(nel caso di DevC++, per gli altri compilatori non so se si chiama cosi)
    
    int main (void)
    {
    SOCKET socklis,sockacp;
    sockaddr_in socklis_in,sockacp_in;
    WORD wVersionRequested;
    WSADATA wsaData;
    int err, backlog=1, addrlen;
    char recvb;
    
    
    
    // Qui sopra vengono dichiarate le veriabili, da notare le 
    // variabili di tipo SOCKET; i socket sono quegli strumenti 
    // che servono per comunicare nella rete, possiamo immaginarli 
    //come un canale tra 2 punti, una volta aperto e 
    // accettato, puo essere usato per inviare dati.
    // altra cosa da notare è la wsaData, in seguito verrà usata per verificare 
    // la versione della winsock.dll installata sulla macchina.
    
    wVersionRequested = MAKEWORD( 2,0 );
    printf("Miniserver su porta 4444\n\n");
    WSAStartup( wVersionRequested, &wsaData );
    
    // Con WSAStartup() la winsock.dll viene inizializzata, 
    //indicando la versione richiesta
    // e la locazione della strusttura wsaData, che verrà 
    //usata per immagazzinare i dati della dll
    
    socklis = socket (PF_INET, SOCK_STREAM, 0);
    socklis_in.sin_family = PF_INET;
    socklis_in.sin_port = htons (4444);
    socklis_in.sin_addr.s_addr = INADDR_ANY;
    
    // Una volta inizializzata la winsock.dll, viene aperto il 
    //socket, specificando il protocollo usato
    // (PF_INET è il TCP/IP), la porta locale e l'indirizzo locale
    
    bind (socklis, (struct sockaddr*)&socklis_in, sizeof(struct sockaddr_in));
    listen(socklis, backlog);
    printf("In attesa di una connessione...\n");
    
    // Ora il socket deve essere inizializzato con la funzione bind(), 
    // in questo modo viene inizializzata con i valori contenuti nella 
    // struttura socklis_in, definiti prima (protocollo, porta e indirizzo)
    // Dopodiche si mette in attesa il socket, con la funzione listen()
    
    addrlen=sizeof(struct sockaddr);
    sockacp=accept(socklis, (struct sockaddr*)&sockacp_in, (LPINT)&addrlen);
    
    // Per preparare il socket ad accettare una connessione, 
    // si usa la funzione accept() che, come parametri richiede 
    // il socket in ascolto e una struttura tipo sockaddr_in che verrà
    // riempita dai dati che il client invierà al server.
    
    
    send(sockacp, "scritta dalla finestra del client dos remoto.\r\n", strlen("scritta dalla finestra del client dos remoto.\r\n"), 0);
    
    // frase visualizzata su telnet remoto
    
    printf("In attesa di ordini...\n\nCon la perssione del tasto 'esc' seguito da 'invio' termina la connessione.\n\n");
    printf("Scrivere delle parole e premere 'invio' per inviarle a telnet remoto.\n\n");
    
    // frase visualizzata nella finetra dos del client
    
      while(recvb!=ESC)
    {
      recvb = getchar();
            send(sockacp, &recvb, strlen(&recvb), 0);
            }
    
    // invia un messaggio(dopo ever premuto enter) dal client dos a telnet remoto
    // Termina il ciclo dopo aver premuto il tasto 'esc' seguito da 'invio'
    
    closesocket(sockacp);
    closesocket(socklis);
    return(0);
    }
    non è molto grosso, comunque grazie per il sito non sapevo della sua esietnza, potrebbe tornare utile!

  5. #15
    Originariamente inviato da unit1
    li codice lo ho trovato mentre giravo in cerca di informazioni sul wiinsock:
    codice:
    /* LISTATO C/C++ DI MIOSERVER
       REALIZZATO DA BARTOLOMEO DAVIDE BERTINETTO
       HOME: HTTP://DIGILANDER.IOL.IT/ALLEGRO.H
       E-MAIL: INFOCALIMERO@LIBERO.IT
    */
    A occhio il server sembra corretto,
    il problema secondo me sorge nel client.

    in effetti adesso lo compila e quando lo eseguo le scritte le da. avendo un solo pc non posso testare anche il client

    cioè, mi spiego: se apro prima il server e poi il client sullo stesso pc, il server non se ne accorege!
    credo possa essere un conflitto sulla porta dell stesso pc.
    client:
    codice:
    /* LISTATO C/C++ DI MIOCLIENT
       REALIZZATO DA BARTOLOMEO DAVIDE BERTINETTO
       HOME: HTTP://DIGILANDER.IOL.IT/ALLEGRO.H
       E-MAIL: INFOCALIMERO@LIBERO.IT
    */  
    
    bind (socklis, (struct sockaddr*)&socklis_in, sizeof(struct sockaddr_in));
    listen(socklis, backlog);
    printf("In attesa di una connessione...\n");
    
    // Ora il socket deve essere inizializzato con la funzione bind(), 
    // in questo modo viene inizializzata con i valori contenuti nella 
    // struttura socklis_in, definiti prima (protocollo, porta e indirizzo)
    // Dopodiche si mette in attesa il socket, con la funzione listen()
    
    addrlen=sizeof(struct sockaddr);
    sockacp=accept(socklis, (struct sockaddr*)&sockacp_in, (LPINT)&addrlen);
    un client di solito usa la funzione connect()
    http://www.lilik.it/~mirko/gapil/gapilsu233.html

    In un modello CLIENT/SERVER classico
    i client usano connect()
    il server usa bind(), listen(), accept()

    qui trovi un esempio d'uso della connect()
    http://www.lilik.it/~mirko/gapil/gap...6-31100015.3.2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.