The Process Method includes members that are available as an add-on to the LEADTOOLS Imaging Pro, Document, and Medical Imaging toolkits.
- readBuffer
- HTTP client request data.
- offset
- Index of the first byte to decode.
- length
- The number of bytes to decode.
Visual Basic (Declaration) | |
---|---|
Public Sub Process( _ ByVal readBuffer() As Byte, _ ByVal offset As Integer, _ ByVal length As Integer _ ) |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As HttpClientRequest Dim readBuffer() As Byte Dim offset As Integer Dim length As Integer instance.Process(readBuffer, offset, length) |
C++/CLI | |
---|---|
public: void Process( array<byte>^ readBuffer, int offset, int length ) |
Parameters
- readBuffer
- HTTP client request data.
- offset
- Index of the first byte to decode.
- length
- The number of bytes to decode.
Visual Basic | Copy Code |
---|---|
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 |
C# | Copy Code |
---|---|
public void ProcessClientRequests() { Leadtools.Examples.Support.Unlock(); 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"; } |
You can call this method many times to decode chunks of client data as they received from an HTTP request.
Use the Execute property to decide when the request data is completely received and decoded.
This method will update the Leadtools.Jpip.HttpServer.HttpClientRequest properties and fill the Headers and Args while processing.
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7