public class HttpClientRequest The HttpClientRequest can read client data received in chunks by calling the Process method multiple times with the chunk data.
The HttpClientRequest support HTTP version 1.1
using Leadtools;using Leadtools.Codecs;using Leadtools.Jpip;using Leadtools.Jpip.HttpServer;using Leadtools.Jpip.RequestDecoder;using Leadtools.Jpip.RequestEncoder;using Leadtools.Jpip.Client.WinForms;using Leadtools.Jpip.Client.InteractiveDecoder;using Leadtools.Jpip.Server;using Leadtools.Jpip.Logging;public void ProcessClientRequests(){Leadtools.Examples.Support.SetLicense();HttpClientRequest clientRequest = null;HttpRequestDecoder decoder = null;Socket client;client = GetClientSocket();clientRequest = new HttpClientRequest();byte[] clientData;int received;do{clientData = new byte[client.ReceiveBufferSize];received = client.Receive(clientData);clientRequest.Process(clientData, 0, received);} while (clientRequest.Execute); //receive data until a complete request is receivedConsole.WriteLine("Client request received: {0}", clientRequest.CompleteMessage);File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "ServerRequests.dat"), clientRequest.BodyData);decoder = new HttpRequestDecoder(clientRequest);Console.WriteLine("Server will process client image {0}", decoder.Fields.RequestTargetFields.Target);//Process client request...client.Close();}private Socket GetClientSocket(){Socket listenSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);IPAddress hostIP = IPAddress.Parse("127.0.0.1");int port = 107;IPEndPoint ep = new IPEndPoint(hostIP, port);listenSocket.Bind(ep);// start listeninglistenSocket.Listen(10);//a client should send a request to the listening addressSocket _client = listenSocket.Accept();listenSocket.Close();return _client;}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}