Socket: The connection was reset

DNewbie run3 at myopera.com
Fri Feb 10 10:52:21 PST 2012


nrgyzer,
please check the return value of 'receive'.

http://dlang.org/phobos/std_socket.html#receive



On Fri, Feb 10, 2012, at 02:06 PM, nrgyzer wrote:
> 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!
> > >
> 
> 


-- 
  
  D


More information about the Digitalmars-d-learn mailing list