Leadtools.Jpip.HttpServer Namespace : HttpClientRequest Class |
public class HttpClientRequest
'Declaration Public Class HttpClientRequest
'Usage Dim instance As HttpClientRequest
public ref 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
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Jpip Imports Leadtools.Jpip.HttpServer Imports Leadtools.Jpip.RequestDecoder Imports Leadtools.Jpip.RequestEncoder Imports Leadtools.Jpip.Client.WinForms Imports Leadtools.Jpip.Client.InteractiveDecoder Imports Leadtools.Jpip.Server Imports Leadtools.Jpip.Logging Public Class HttpServerCommunication Private Sub ProcessClientRequests() Dim clientRequest As HttpClientRequest = Nothing Dim decoder As HttpRequestDecoder = Nothing Dim client As Socket client = GetClientSocket() clientRequest = New HttpClientRequest() Dim clientData As Byte() Dim received As Integer Do clientData = New Byte(client.ReceiveBufferSize - 1) {} received = client.Receive(clientData) clientRequest.Process(clientData, 0, received) Loop While clientRequest.Execute 'receive data until a complete request is received Console.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() End Sub Private Function GetClientSocket() As Socket Dim listenSocket As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim hostIP As IPAddress = IPAddress.Parse("127.0.0.1") Dim port As Integer = 107 Dim ep As IPEndPoint = New IPEndPoint(hostIP, port) listenSocket.Bind(ep) ' start listening listenSocket.Listen(10) 'a client should send a request to the listening address Dim client As Socket = listenSocket.Accept() listenSocket.Close() Return client End Function End Class Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
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() { #if LEADTOOLS_V175_OR_LATER Leadtools.Examples.Support.SetLicense(); #else Leadtools.Examples.Support.Unlock(); #endif // #if LEADTOOLS_V175_OR_LATER 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 received Console.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 listening listenSocket.Listen(10); //a client should send a request to the listening address Socket _client = listenSocket.Accept(); listenSocket.Close(); return _client; } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }