This walkthrough runs the packaged SellSide and BuySide samples together on one computer. SellSide accepts a FIX 4.4 connection, BuySide sends a NewOrderSingle message, and SellSide responds with an ExecutionReport.
Before You Start
- Install a supported compiler listed in System Requirements.
- Place a valid license file in the distribution's license directory. See Licensing for other supported license locations.
- Keep each program's working directory set to its sample source directory. BuySide loads FixDialectDescription.xml from that directory, and both samples resolve the license through relative paths.
- Ensure that TCP port 4500 is available on the machine. By default, SellSide listens on all local interfaces. To use another port, pass the same --port value to both programs.
Build the Samples on Linux
The packaged Linux distribution provides a Makefile in each sample directory:
cd samples/GettingStarted/SellSide
make
cd ../BuySide
make
Build the Samples on Windows
From a Visual Studio 2026 Developer PowerShell, build the packaged x64 projects:
msbuild samples\GettingStarted\SellSide\SellSide-vs18.sln /p:Configuration=Release /p:Platform=x64
msbuild samples\GettingStarted\BuySide\BuySide-vs18.sln /p:Configuration=Release /p:Platform=x64
Start SellSide
Open a terminal in samples/GettingStarted/SellSide and run the sample. On Linux:
On Windows:
.\vs18-x64-Release\SellSide.exe
SellSide is ready when it reports:
Awaiting session-initiator on port 4500...
Connect BuySide and Exchange a Message
Open another terminal in samples/GettingStarted/BuySide and run BuySide. On Linux:
On Windows:
.\vs18-x64-Release\BuySide.exe
On each run, BuySide sets ResetSeqNumFlag(141)=Y in its Logon to request that both sides reset their sequence numbers to 1. Before adapting the sample for another counterparty, check the counterparty's sequence reset policy; see Resetting Message Sequence Numbers via ResetSeqNumFlag Field.
After the session becomes active, press any key in BuySide to send the order. A successful exchange includes these messages across the two terminals:
BuySide received Logon.
The order
8=FIX.4.4 ... 35=D ...
was sent
SellSide received NewOrderSingle.
Sent ExecutionReport.
Received ExecutionReport.
SellSide received Logout.
Press any key in BuySide to log out and terminate it. Then press any key in SellSide to terminate the acceptor. Both samples shut down their sessions and the FIX Engine cleanly.
Troubleshooting
- License cannot be found: run each executable from its own sample directory and confirm that the distribution's license directory contains a current license.
- Dialect description cannot be opened: confirm that FixDialectDescription.xml is present in the BuySide working directory.
- Port is already in use: choose an available port from 1 through 65535 and pass the same --port value to SellSide and BuySide.
- Logon times out: start SellSide first and wait for its readiness message before starting BuySide.
Next Steps
Review the complete implementations in Buy Side Sample and Sell Side Sample.
Continue with Engine initialization, FIX messages, and FIX Session fundamentals for the API concepts used by these samples. Then explore Advanced Samples, or prepare for production with Configuring the Engine, Logging Services, Failover, and Best Practices.