Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Jpip
Imports Leadtools.Jpip.Caching
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 HttpClientCommunication
Private Sub SendClientRequest()
Dim fields As RequestFields = New RequestFields()
Dim cacheModleItem As ModelItem
Dim binDescriptor As ExplicitBinDescriptor
Dim cacheModleElement As ModelElement
fields.RequestTargetFields = New TargetFields("0", "image1.jp2", Nothing)
fields.RequestChannelFields.NewChannel = New String() {"http"}
fields.RequestDataLimitFields.DataLength = 16384
cacheModleItem = New ModelItem()
binDescriptor = New ExplicitBinDescriptor(ExplicitBin.MetaBin, 0, Nothing) 'indicate that metadata bin 0 is locally cached and need not be sent.
cacheModleElement = New ModelElement(False, binDescriptor)
cacheModleItem.BinDescriptors.Add(cacheModleElement)
cacheModleItem.CodeStreamRange.Add(New Range(0, 0))
fields.RequestCacheManagementFields.ModelItems.Add(cacheModleItem)
Dim imageType As ImageReturnType = New ImageReturnType(ImageTypes.JppStream, False)
fields.RequestServerControlFields.ImageReturnTypes = New ImageReturnType() {imageType}
fields.RequestViewWindowFields.FrameSize = New LeadSize(500, 300)
fields.RequestViewWindowFields.RegionOffset = New LeadPoint(0, 100)
fields.RequestViewWindowFields.FrameSizeRoundingDirection = RoundingDirection.Closest
Dim codeStreamRange As SampleRange = New SampleRange()
codeStreamRange.Range = New Range(0, 0)
fields.RequestViewWindowFields.CodeStream.Add(codeStreamRange)
Dim encoder As HttpRequestEncoder = New HttpRequestEncoder(IPAddress.Parse("127.0.0.1"), 108)
Dim request As HttpWebRequest = encoder.Encode(fields, "jpip", Nothing)
Console.WriteLine(request.Address.ToString())
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Console.WriteLine("Server response received.")
Console.WriteLine(response.Headers.ToString())
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
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Jpip;
using Leadtools.Jpip.Caching ;
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 SendClientRequest()
{
#if LEADTOOLS_V175_OR_LATER
Leadtools.Examples.Support.SetLicense();
#else
Leadtools.Examples.Support.Unlock();
#endif // #if LEADTOOLS_V175_OR_LATER
RequestFields fields = new RequestFields();
ModelItem cacheModleItem;
ExplicitBinDescriptor binDescriptor;
ModelElement cacheModleElement;
fields.RequestTargetFields = new TargetFields("0", "image1.jp2", null);
fields.RequestChannelFields.NewChannel = new string[] { "http" };
fields.RequestDataLimitFields.DataLength = 16384;
cacheModleItem = new ModelItem();
binDescriptor = new ExplicitBinDescriptor(ExplicitBin.MetaBin, 0, null); //indicate that metadata bin 0 is locally cached and need not be sent.
cacheModleElement = new ModelElement(false, binDescriptor);
cacheModleItem.BinDescriptors.Add(cacheModleElement);
cacheModleItem.CodeStreamRange.Add(new Range(0, 0));
fields.RequestCacheManagementFields.ModelItems.Add(cacheModleItem);
ImageReturnType imageType = new ImageReturnType(ImageTypes.JppStream, false);
fields.RequestServerControlFields.ImageReturnTypes = new ImageReturnType[] { imageType };
fields.RequestViewWindowFields.FrameSize = new LeadSize(500, 300);
fields.RequestViewWindowFields.RegionOffset = new LeadPoint(0, 100);
fields.RequestViewWindowFields.FrameSizeRoundingDirection = RoundingDirection.Closest;
SampleRange codeStreamRange = new SampleRange();
codeStreamRange.Range = new Range(0, 0);
fields.RequestViewWindowFields.CodeStream.Add(codeStreamRange);
HttpRequestEncoder encoder = new HttpRequestEncoder(IPAddress.Parse("127.0.0.1"), 108);
HttpWebRequest request = encoder.Encode(fields, "jpip", null);
Console.WriteLine(request.Address.ToString());
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Console.WriteLine("Server response received.");
Console.WriteLine(response.Headers.ToString());
}
public 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;
}