# Does Ignition support Communication over TCP/IP with Ignition being the host?

**URL:** <https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352>\
**Category:** General Discussion\
**Created:** [March 6, 2025, 8:48pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352 "2025-03-06T20:48:17Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Robert\_Reed](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@Robert\_Reed](https://forum.inductiveautomation.com/u/Robert_Reed)\
**Post date:** [March 6, 2025, 8:48pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/1 "2025-03-06T20:48:17Z")

</div>

I need to establish bi directional communication between a PC and Ignition over a network. Looking at the DOCs I see a tcpip connection device that is the client. Is there any capability to have Ignition act as the TCPIP host?

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [March 6, 2025, 8:53pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/2 "2025-03-06T20:53:54Z")

</div>

Tell us more about what you want to get from the Ignition gateway.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [March 6, 2025, 8:56pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/3 "2025-03-06T20:56:11Z")

</div>

What software/communications protocols are being used by the other PC? Is it raw TCP/IP data? Since the other PC is the client, will it be initiating the connection to Ignition?

---

<div class="post-metadata">

**Author:** ![Robert\_Reed](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@Robert\_Reed](https://forum.inductiveautomation.com/u/Robert_Reed)\
**Post date:** [March 6, 2025, 9:03pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/4 "2025-03-06T21:03:08Z")

</div>

Yes, raw TCPIP data.  
Yes initiating the connection.

I want to monitor ascii data received from a tester, Evaluate the data, create a response and send the response.  
Or Create a string, send the string to the tester and then wait for the response.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 6, 2025, 9:05pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/5 "2025-03-06T21:05:49Z")

</div>

~~The native TCP driver in Ignition can act as a server, but does not work well with binary data, nor will more than a message per second or so.~~

If you are willing maintain some jython, and take special care with thread lifetimes, a long-lived thread can establish a listening socket and perform complex, high-speed handling of whatever traffic you like.

---

<div class="post-metadata">

**Author:** ![Robert\_Reed](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@Robert\_Reed](https://forum.inductiveautomation.com/u/Robert_Reed)\
**Post date:** [March 6, 2025, 9:10pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/6 "2025-03-06T21:10:43Z")

</div>

Thanks for the quick response.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [March 6, 2025, 9:12pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/7 "2025-03-06T21:12:15Z")

</div>

No, it's client only. It initiates the connection and then just receives data.

There is a third party TCP driver that acts as a server floating around somewhere, originally done by @chi years ago.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 6, 2025, 10:01pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/8 "2025-03-06T22:01:45Z")

</div>

> [@Kevin.Herron](#):
>
> No, it's client only

Huh. T-I-L. (I obviously never use it. 🤷‍♂️ )

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [March 7, 2025, 1:27pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/9 "2025-03-07T13:27:11Z")

</div>

I've not used one of these specifically, but RTA has some good products.

> **[460TCPUS](https://www.rtautomation.com/product/460tcpus/)**
>
> The 460TCPUS moves data between up to 10 Ethernet TCP/IP devices and a OPC UA client. Incoming and outgoing ASCII data in TCP/IP packets are parsed into data segments and given a data type.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [March 7, 2025, 4:29pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/10 "2025-03-07T16:29:57Z")

</div>

Coming Soon! Automation Professionals TCP Server Driver!  
(For those unaware, I'm joking....unless @pturmel wants to really do this)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [March 7, 2025, 4:32pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/11 "2025-03-07T16:32:18Z")

</div>

I think the real reason Phil won't do it is that the tag/driver system isn't a great model for a stateful, long-lived raw socket. It really needs a strong protocol established over top. Arbitrary socket work basically demands actual scripting.

Though, maybe event streams could be used to paper over some of the complexities of lifecycle and allow you to focus on the event handling.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [March 7, 2025, 4:35pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/12 "2025-03-07T16:35:51Z")

</div>

> [@paul-griffith](#):
>
> stateful

Is this the big reason the TCP/UDP driver doesn't support listening connections on TCP? (Yet supposedly supports a listening connection on UDP).

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 7, 2025, 4:36pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/13 "2025-03-07T16:36:21Z")

</div>

> [@michael.flagler](#):
>
> Coming Soon!

No, but I have helped clients create this sort of thing with long-lived jython threads. It isn't easily generalized to make a module practical.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [March 7, 2025, 4:43pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/14 "2025-03-07T16:43:51Z")

</div>

UDP is a connection-less protocol. Both sides are fundamentally senders, receivers, or both.

---

<div class="post-metadata">

**Author:** ![josh.carney](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh.carney/32/73913_2.png) [@josh.carney](https://forum.inductiveautomation.com/u/josh.carney)\
**Post date:** [March 19, 2025, 5:48pm UTC](https://forum.inductiveautomation.com/t/does-ignition-support-communication-over-tcp-ip-with-ignition-being-the-host/103352/15 "2025-03-19T17:48:48Z")

</div>

I've been requested by a customer to do something exactly like this as well.

They want Ignition to be the TCP "Listening Server" on a particular IP/port.

I'm not sure how reliable handling this in long running gateway scripts would be.

**Some challenges** :

1. _How to handle multiple messages coming in quickly_  
_We don't want the OPC-UA tag to just get overwritten so fast that there's no time to have an event driven script react to the incoming message._  
_They need to be queued and processed 1 at a time._

2. _Need to handshake and send ACKs/writebacks back to the "Client/talker"._

I discovered this custom driver by @chi-Ignition after seeing some post about it on the forums.

I've come to discover how it works this week and reading the provided documentation.

It seems to be successfully working, and meets my challenges above, but not sure about reliability yet.

Also unsure about long term support of this driver.

I really wish Ignition had a built in TCP Listening Server driver.

> **[GitHub - chi-Ignition/generic-tcp-driver: A universal tcp client/server driver for the...](https://github.com/chi-Ignition/generic-tcp-driver)**
>
> A universal tcp client/server driver for the Ignition(R) OPC-UA server.

 ![Sample_TCP_Server_IP/Device](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/4/948c38698331a3bbb7d95abf49e531e79c654c8f.png)
