Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C] socket e browser

  1. #1

    [C] socket e browser

    ciao a tutti

    ho una domanda sui socket. Usando le funzioni socket, bind, listen etc. èrelativamente semplice creare un server che si mette in ascolto su una porta. se con un browser invio una richiesta al server suddetto anche fittizia, questo riceve le inestazioni. se questo server è stato eseguito da shell e, dopo aver ricevuto le intestazioni html esegue una printf l'output va sulla shell. come faccio a farlo ritornare al browser?

    ciao
    grazie

  2. #2
    Ma infatti non devi usare printf, devi scrivere sulla socket.

    Ad es. tu fai cosi' per accettare una connessione no?:
    clientsock = accept(serversock, ecc)

    Ora devi lavorare con il socket del client:
    send(clientsock, dati, ecc)

  3. #3
    ti ringrazio per la risposta

    per la risposta provo a fare una cosa del genere:

    codice:
    n = write(newsockfd, "HTTP/1.0 200 Ok\r\n\r\n", 19);
    cerco di inviare unaintestazione http al browser.

    il problema si presenta in questo modo:

    1) avvio il server sulla porta 63000 e questo rimane in ascolto
    2) quando legge in un buffer una richiesta, qualunque essa sia (è solo un test) invia l'intestazione suddetta. la richiesta la legge con
    codice:
    n = read(newsockfd, buffer, 255);
    se digito nella barra dell'indirizzo

    il browser invia correttamente le intestazioni http, ma mi da il messaggio di errore

    codice:
    the connection was refused when attempting to contact 127.0.0.1:63000
    come mai?
    quello che mi aspetto è una pagina vuota (avendo inviato solo una intestazione)

    grazie1000

  4. #4
    ok ho risolto!

    il problema era dovuto proprio al fatto che inviavo una sola intestazione http.

    avrei un'altra domanda però:

    come devo scrivere un while() in modo che il server rimanga in ascolto dopo la risposta invece di terminare?

  5. #5
    Nel while metti il read e lui legge sempre, poi e' questione di RFC perche' puo' essere che e' il client che termina la connessione in base hai dati che gli mandi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.