Socket: The connection was reset

nrgyzer nrgyzer at gmail.com
Fri Feb 10 06:06:54 PST 2012


Works perfectly, thanks :)
But... how can I read the complete HTTP-header? When I try the following:

	string header;
	ubyte[1024] buffer;
	while (cs.receive(buffer)) header ~= buffer;

... it works as long as the header doesn't have a length like 1024, 2048,
3072... Otherwise cs.receive() blocks forever and the server doesn't respond
anything. Is there any solution how to prevent/solve this problem?


== Auszug aus DNewbie (run3 at myopera.com)'s Artikel
> Try this
> 	while(true) {
> 		Socket cs = s.accept();
> 		cs.receive(new byte[1024]);
> 		cs.sendTo("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nHello
World");
> 		cs.close();
> 	}
> On Thu, Feb 9, 2012, at 07:31 PM, Nrgyzer wrote:
> > Hi guys,
> >
> > I wrote the following few lines:
> >
> > private {
> >
> > 	import std.socket;
> >
> > }
> >
> > void main() {
> >
> > 	Socket s = new TcpSocket();
> > 	s.bind(new InternetAddress(80));
> > 	s.listen(0);
> >
> > 	while(true) {
> >
> > 		Socket cs = s.accept();
> > 		cs.sendTo("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nHello
World");
> > 		cs.close();
> >
> > 	}
> >
> > 	s.close();
> >
> > }
> >
> > The code compiles successfully and I also the server also responses with
> > "Hello World", but when I reload the page I sometimes get the following
> > error (Firefox): "The
> > connection was reset" - I also often get the same error in other
> > browsers. Is there anything wrong with the code?
> >
> > Thanks in advance!
> >



More information about the Digitalmars-d-learn mailing list