mamy sobie mały serwerek napisany w C (dev-c) który nasłuchuje na 80 porcie, jak przegladarka(ie,nn) sie polaczy to wysyla stosowny naglowek oraz zawartosc tablicy char. problem polega na tym jak wyslac plik graficzny (oczywiscie stosujemy odpowiedni naglowek image/jpeg). Serwer WWW zamieszczony w dziale C/C++ wysyla pliki tekstowe (HTML) a niestety jestem zbyt głupi aby goprzerobić Ludzie pomórzcie
0
0
ja to zrobiłem tak (w basicu)
funkcja cType(ext:string),string (zwraca odpowiedni content-type dla podanego rozszeżenia pliku)
[...]
case ".txt"
ContentType="text/plain"
case ".htm"
case& ".html"
case& ".php"
case& ".asp"
case& ".js"
ContentType="text/html"
case ".jpg"
case& ".jpeg"
ContentType="image/jpeg"
case ".gif"
ContentType="image/gif"
case ".bmp"
ContentType="image/bmp"
[...]
ContentType += "\n"
Return ContentType /* zwraca pointer do stringu ContentType */
no i główna część serwera która wysyła header:
filelen=len(f)
buff ="HTTP/"+HttpVersion+" 200 OK\n"
buff+="Server: IBpro server\n"
buff+="Connection: close\n"
buff+="Accept-Ranges: bytes\n"
buff+="Content-Length:"+str$(filelen)+"\n"
buff+=cType(ext)
buff+="\n"
send(aSocket, &buff, len(buff), 0)
HttpVersion jest kopiowane z tego co klient nam wysyła :)
buff+=cType(ext) - odwołanie do funkcji cType() - ext to string (rozszeżenie żądanego pliku : ".exe" albo "html" ...)