Join the 80,000 other DTN customers who enjoy the fastest, most reliable data available. There is no better value than DTN!

(Move your cursor to this area to pause scrolling)




"Very impressed with the quality of your feed - ******* is a real donkey in comparison." - Comment from A.C. via Email
"I noticed that ******* quotes locked up shortly after the interest rate announcement yesterday while yours stayed stable." - Comment from Ron in Utah
"Everything is working great with the API. I love it." - Comment from Calvin
"I am a hedge fund manager here. It’s funny, I have a Bloomberg terminal and a Bridge feed, but I still like having my DTN feed!" - Comment from Feras
"This is an excellent value, the system is generous (allowing for 500 stocks) and stable (and really is tick-by-tick), and the support is fantastic." - Comment from Shirin via Email
"I was with ******* for 4 years at $230 a month, this is a huge savings for me, GOD BLESS YOU PEOPLE," - Comment from T.S. via Email
"You are either overstaffed or people just don't have problems with your feed because customer support always answers the phone quickly." - Comment from Jay via Email
"I've never had DTN go out on me since switching. ******* would go down a couple times every month when I was using them." - Comment from Bryce in AL.
"If you want customer service that answers the phone, your best bet is IQFeed. I cannot stop praising them or their technical support. They are always there for you, and they are quick. I have used ****** too but the best value is IQFeed." - Comment from Public Forum
"Just a quick one to say I'm very impressed so far :) The documentation for developers is excellent and I've quickly managed to get an app written to do historical downloads. The system is very robust and pretty quick considering the extent of data that's available. The support guys have been very helpful too, in combination with the forums it's been plain sailing so far!" - Comment from Adam
Home  Search  Register  Login  Recent Posts

Information on DTN's Industries:
DTN Oil & Gas | DTN Trading | DTN Agriculture | DTN Weather
Follow DTNMarkets on Twitter
DTN.IQ/IQFeed on Twitter
DTN News and Analysis on Twitter
»Forums Index »Archive (2017 and earlier) »IQFeed Developer Support »IQFeed .NET C# sockets example using IQ32.dll
Author Topic: IQFeed .NET C# sockets example using IQ32.dll (5 messages, Page 1 of 1)

Dennis
-Interested User-
Posts: 19
Joined: Oct 8, 2004


Posted: Oct 26, 2004 05:36 PM          Msg. 1 of 5
This may be of interest to some:

///////////////////////////////////////////////////////////////////////////////////
// console_stream.cs, version 1.0, copyright 2004
// IQFeed .NET C# sockets example using IQ32.dll
//
// contributed to the IQFeed Developer Support Forum
// by Dennis Sanders (forum username: Dennis)
// email: dennissanders@intsvcs.com
///////////////////////////////////////////////////////////////////////////////////

using System;
using System.Threading;
using System.Net.Sockets;
using System.Runtime.InteropServices;

public delegate void Callback(int x, int y);

class IQFeed_NETSocket_Example
{
[DllImport("IQ32.dll")]
public static extern void SetCallbackFunction(Callback SetGoodToGo);
[DllImport("IQ32.dll")]
public static extern int RegisterClientApp(IntPtr hClient, string szProductName,
string szProductKey, string szProductVersion);
[DllImport("IQ32.dll")]
public static extern void RemoveClientApp(IntPtr hClient);

public static bool GoodToGo = false;

public static void SetGoodToGo(int x, int y)
{
GoodToGo = (x==0 && y==0);

if (x==1 && y==1)
{
Console.WriteLine("IQFeed delivered close message");
RemoveClientApp(IntPtr.Zero);
}
}

public static void Main()
{
Callback IQFeed_CallBack = new Callback(IQFeed_NETSocket_Example.SetGoodToGo);
SetCallbackFunction(IQFeed_CallBack);

RegisterClientApp(IntPtr.Zero, "IQFEED_DEMO", "1.0", "1.0");

while (!GoodToGo)
Thread.Sleep(100);

try
{
String server = "127.0.0.1";
Int32 port = 5009;
TcpClient client = new TcpClient(server, port);

NetworkStream stream = client.GetStream();

String message = "S,KEY\r\n";
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);

message = "wMSFT\r\n";
message += "wIBM\r\n";
data = System.Text.Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);

data = new Byte[5120];

for(int x=0; x<20; x++)
{
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.Write(responseData);
}

client.Close();
}

catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}

catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}

RemoveClientApp(IntPtr.Zero);

Console.Write("\nPress Enter to continue...");
Console.Read();

GC.KeepAlive(IQFeed_CallBack);
}
}

//////////////////////////////////////////////////////////////////////////////////////
// end - console_stream.cs
//////////////////////////////////////////////////////////////////////////////////////


Please post or email any questions, comments or improvements.

Regards,
Dennis Sanders
dennissanders@intsvcs.com

Dennis
-Interested User-
Posts: 19
Joined: Oct 8, 2004


Posted: Oct 26, 2004 06:56 PM          Msg. 2 of 5
To build and run console_stream.cs from Visual Studio.NET:

Create a new Visual C# "Empty Project" in Visual Studio.NET
- In VS.NET go to File->New->Project->Visual C# Projects->Empty Project.
- Type in "console_stream" as the project name and select a location for the project folder.
- Accept the remaining defaults and click OK.
Add a new Code File to the Project
- In the Solution explorer (use View if you don't see it), right click "console_stream" (the project name).
- Select Add->Add New Item->Code File.
- Name the Code File console_stream.cs, click Open.
Copy and paste the posted code to the editing space for console_stream.cs.
- (...All indents will be magically restored, thank God!...)
Add System.dll to the References in your project.
- Right click References (below the project name in the Solution Explorer).
- Select Add Reference, then scroll down the selections under the .NET tab.
- Double-click System.dll, it should appear in Selected Components, then click OK.
(System.dll will be added as System under References.
Now Build the Solution
- Change Active Configuration if desired.(the default is Debug, but Release works as well)
- Then select Build->Build Solution

The project should build with 0 failed, 0 skipped (and no warnings).
- Any build errors can most likely be resolved by adjusting your path or other environment variables.

You will need a path to IQ32.dll (C:\Program Files\DTN\IQFeed on my computer) in order to successfully run the program.

To run console_stream.exe from Visual Studio press F5. Or, to run the .exe from Windows; exit Visual Studio and hunt down the console_stream.exe in you newly created project folder. When you find it...double click it.

If you have any questions or problems, please post or email.

Regards,
Dennis Sanders
dennissanders@intsvcs.com

Dennis
-Interested User-
Posts: 19
Joined: Oct 8, 2004


Posted: Oct 26, 2004 10:23 PM          Msg. 3 of 5
To build and run console_stream.cs from Windows:

Create and name a new folder in a location of your choice.
Open the new folder in a window on your desktop.
Create a new C# Code File in the new folder using the posted code example.
- Open notepad (or a text editor of your choice), copy and paste the posted code to it.
- Using the brackets in the code as a guide, manually replace the indentions that were scrubbed in the forum post.
- Save the contents of notepad to your folder as console_stream.cs
Create a new compile.bat file using notepad.
- Select File->New from the notepad menu.
- Type "csc console_stream.cs" (do not include the quote marks).
- Save (File->Save As) the contents of notepad to your folder as build.bat

You should have two files in your folder; console_stream.cs and build.bat

Create the executable file console_stream.exe
- Double click build.bat

A new file, console_stream.exe should appear in the folder (if not, check the possible reasons below).
Double click console_stream.exe to run the new example.

Possible reasons console_stream.exe was not created or will not run.
- .NET Framework and/or .NET SDK are not installed on your computer (these are free from Microsoft).
- Your path does not include the directory (folder) that contains the .NET build command csc.exe
- Your path does not include the IQFeed directory (C:\Program Files\DTN\IQFeed on my computer).

Executing the build and/or run operations at the Windows Command Prompt will help you diagnose most problems.
Feel free to post your ideas/questions/problems to this thread, or send an email.

Regards,
Dennis Sanders
dennissanders@intsvcs.com

frankzhou
-Interested User-
Posts: 15
Joined: Oct 6, 2004


Posted: Oct 27, 2004 03:36 PM          Msg. 4 of 5
good,do you have a example for history data?
thanks

Dennis
-Interested User-
Posts: 19
Joined: Oct 8, 2004


Posted: Oct 27, 2004 07:10 PM          Msg. 5 of 5
frankzhou,

I am attempting to create a .NET C# version of the VC++ History Example. However, with my current work load, it may be a bit delayed. When I have something useful (in whole or in part), I will post it to the developer forum.

Regards,
Dennis
 

 

Time: Fri May 3, 2024 3:06 PM CFBB v1.2.0 13 ms.
© AderSoftware 2002-2003