0

Ok so ive been writing code for a web server to return requested files, It works well for html and txt files but when an image is requested all i recieve is the url of the file... In firefox in conqueror i dont get anything. All i do is read the file and send it that is all so that part is fine. I think the problem is somewhere in the headers of the response of the server.

const char *r1="HTTP/1.1 200 OK\r\n";
	const char *r2="Date: ";
	const char *r3="\r\nConnection: close";
	const char *r4="\r\nContent-Length: ";
	const char *r5="\r\nContent-Type: ";
	const char *r6="\r\n\r\n";
	const char *r7="<Head><Title>Page Found</Title>";
    	const char *r8="<Body> File: ";
    	const char *r9=" was found</body></head>\r\n";
	strcpy(returned,r1);
    	strcat(returned,r2);
	strcat(returned,dates);
	strcat(returned,r3);
    	strcat(returned,r4);
	strcat(returned,ContentSize);
	strcat(returned,r5);
	strcat(returned,ContentType);
	strcat(returned,r6);

	if(isGet=0)
	{
		strcat(returned,r7);
		strcat(returned,r8);
    		strcat(returned,FileName);
    		strcat(returned,r9);
	}
	if(isGet=1)
	{
		fin=open(pname,O_RDONLY);
		frc = read(fin,bufferer,bufsiz);
		strcat(returned,bufferer);
	}	
		
		write(connsock,returned,strlen(returned));
6
Contributors
7
Replies
9
Views
7 Years
Discussion Span
Last Post by NicAx64
0

It returns other webpages of huge sizes and txt file great but images it just doesnt seen to do... It returns content type image/jpeg if requesting a jpeg or jpg file and image/gif for gif and image/png for png files it cant undertand it. and pname is just the path of the file with the name

0

Are

other webpages of huge sizes and txt file[s]

binary files? I suspect not. strcat() is only useful on text, not binary information. nezachem is correct because an image is binary. You need a different way of processing non-text information.

0

Good catch on the if statements completely missed that and it still worked for somereason anyway, Ye i changed the strcat so now all it does is read and write

if(isGet==1)
		{
			write(connsock,returned,strlen(returned));
			fin=open(pname,O_RDONLY);
			frc = read(fin,bufferer,bufsiz);
			write(connsock,bufferer,strlen(bufferer));
		}

I still get the same as before the url but not the picture

0

Are binary files? I suspect not. strcat() is only useful on text, not binary information. nezachem is correct because an image is binary. You need a different way of processing non-text information.

as long as you can encode '\0' to a different value, it won't be a problem.
I have done this many times,I have wrote my own encoding for binary data.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.