Streaming af bytes.
Jeg har lavet en proxyserver der sender webrequest videre fra browseren og streamer bytes tilbage til browseren:------------------( RequestHandler.cs )------------------------
NetworkStream netStream = client.GetStream ();
byte[] bytes = new byte[client.ReceiveBufferSize];
netStream.Read (bytes, 0, (int)client.ReceiveBufferSize);
//request fra browseren ex: GET http://www.google.dk/ HTTP/1.0
string data = Encoding.UTF8.GetString(bytes);
//opretter mit eget request objekt
Request request = new Request(data);
//sender requestet videre til den respektive server
TcpClient client2 = new TcpClient(request.Server,request.Port);
NetworkStream stream2 = client2.GetStream();
stream2.Write(bytes,0,bytes.Length);
stream2.Flush();
//modtager bytes fra serveren og
//streamer dem videre til browseren (Skal optimeres)
int i = 0;
int b;
while((b = stream2.ReadByte())!=-1){
if(b==-1){
break;
}
netStream.Write(new byte[]{(byte)b},0,1);
i++;
}
netStream.Flush();
---------------------------------------------------------------
Er der nogen der kan hjælpe mig med at optimere dette:
int i = 0;
int b;
while((b = stream2.ReadByte())!=-1){
if(b==-1){
break;
}
netStream.Write(new byte[]{(byte)b},0,1);
i++;
}
Jeg ved at det går langsommere fordi at jeg læser og streamer én byte af gangen.. Jeg kan ikke gennemskue hvorledes jeg evt. skal streame i klumper af f.eks. 1024 bytes af gangen??
Mvh Casualty
