# FIX over HTTP or TCP

**URL:** <https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094>\
**Category:** General Q&A\
**Tags:** fixml, xid\_164944, imported\
**Created:** [February 26, 2003, 7:35am UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094 "2003-02-26T07:35:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jimmyzhan\_x](https://avatars.discourse-cdn.com/v4/letter/j/85f322/32.png) [@jimmyzhan\_x](https://forum.fixtrading.org/u/jimmyzhan_x)\
**Post date:** [February 26, 2003, 7:35am UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/1 "2003-02-26T07:35:00Z")

</div>

Imported from previous forum

---

<div class="post-metadata">

**Author:** ![jimmyzhan\_x](https://avatars.discourse-cdn.com/v4/letter/j/85f322/32.png) [@jimmyzhan\_x](https://forum.fixtrading.org/u/jimmyzhan_x)\
**Post date:** [February 26, 2003, 7:35am UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/2 "2003-02-26T07:35:00Z")

</div>

hello,

I’ve got another question regarding how FIXML is transported. Usually XML is transported over HTTP, I am just just wondering whether FIXML is over HTTP or not. If not, what is the performance implication of HTTP vs TCP??

Thanks,  
Jimmy

---

<div class="post-metadata">

**Author:** ![fplpo\_x](https://avatars.discourse-cdn.com/v4/letter/f/7ab992/32.png) [@fplpo\_x](https://forum.fixtrading.org/u/fplpo_x)\
**Post date:** [February 26, 2003, 9:16pm UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/3 "2003-02-26T21:16:00Z")

</div>

[original email was from Ryan Pierce - [rpierce@taltrade.com](mailto:rpierce@taltrade.com) ]  
\> I’ve got another question regarding how FIXML is transported. Usually XML is transported over HTTP, I am just just wondering whether FIXML is over HTTP or not. If not, what is the performance implication of HTTP vs TCP??

FIX (not FIXML) has a defined message representation (Tag=Value[SOH]) and a session layer that supports message sequencing and checksums. In theory, any transport mechanism, reliable or unreliable, could be used for FIX. In practice, FIX’s recovery mechanisms aren’t robust enough to maintain business connectivity over an unreliable transport mechanism like UDP or a noisy modem connection with no error correction.

So in practice, almost all FIX is run over TCP, which is a reliable transport protocol. However, nothing in the FIX spec dictates that TCP must be used.

FIXML, unlike FIX, has no defined session layer, checksum, or sequence numbering. FIXML defines business content only, and it must rely on something else to provide reliable, ordered message delivery.

The only method currently defined for transporting FIXML is to encapsulate it inside a normal Tag=Value FIX message (which usually sits on top of TCP.) FIX will provide for ordered, reliable delivery, and FIXML conveys all the business content.

Anything else could be used as well, as long as it provides for ordered, reliable message delivery. (Imagine the business implications of line noise transposing the letters of the symbol for an order, or re-ordering messages so that a Cancelled message for an order comes before a Partially Filled message!)

Currently, the Global Derivatives working group is investigating defining a standard way to send FIX over MQSeries. I don’t know of anyone doing FIXML over HTTP, but I’d imagine you’d need some other layer in addition to handle ordering your messages, detecting message gaps, etc.

---

<div class="post-metadata">

**Author:** ![fplpo\_x](https://avatars.discourse-cdn.com/v4/letter/f/7ab992/32.png) [@fplpo\_x](https://forum.fixtrading.org/u/fplpo_x)\
**Post date:** [March 20, 2003, 5:10pm UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/4 "2003-03-20T17:10:00Z")

</div>

[original email was from Ning Huang - jhuang@etrade.ca]  
I am working on a pioneer project, which uses HTTP/SOAP as a transport to send and receive FIXML. We also have an existing trading system using permanent TCP/IP socket connections to send and receive traditioanl tag=value FIX messages. The way how these two systems work is quite different. Since HTTP is a one time query-and-reply protocol, I don’t send back reports until the client askes for it. And there is no gap fill as there are no sequence numbers. HTTP protocol provides its own way to guarentee messages are received by the other side.

---

<div class="post-metadata">

**Author:** ![charliehussa\_x](https://avatars.discourse-cdn.com/v4/letter/c/c4cdca/32.png) [@charliehussa\_x](https://forum.fixtrading.org/u/charliehussa_x)\
**Post date:** [September 14, 2006, 2:48pm UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/5 "2006-09-14T14:48:21Z")

</div>

> I am working on a pioneer project, which uses HTTP/SOAP as a transport  
> to send and receive FIXML. We also have an existing trading system using  
> permanent TCP/IP socket connections to send and receive traditioanl  
> tag=value FIX messages. The way how these two systems work is quite  
> different. Since HTTP is a one time query-and-reply protocol, I don’t  
> send back reports until the client askes for it. And there is no gap  
> fill as there are no sequence numbers. HTTP protocol provides its own  
> way to guarentee messages are received by the other side.  
> Hi I was woundering if you can help with trying to figure out how to settle my accounts with e\*trade capital markets,I reciced my comfirmations via ISITC.ORG.and wanted to have it transfered to another brokerage company of mine.thank you

---

<div class="post-metadata">

**Author:** ![ronybsc01\_x](https://avatars.discourse-cdn.com/v4/letter/r/f0a364/32.png) [@ronybsc01\_x](https://forum.fixtrading.org/u/ronybsc01_x)\
**Post date:** [March 2, 2017, 6:02pm UTC](https://forum.fixtrading.org/t/fix-over-http-or-tcp/9094/6 "2017-03-02T18:02:28Z")

</div>

How to send & receive FIX mesaages via TCP/Winsock?

Is it possible to connect to a FIX server via TCP & send/receive messages? (via send() & recv() functions perhaps?)

About using Quickfix, I haven’t yet completed C# & XML, so I need a fairly simple demonstration via C++. If yes, can you show me an example of how to achieve such?
