I'm looking for a reliable method of sending data from multiple computers to one central computer that will receive all the data, process and analyse it. All computers will be on the same network.
I will be sending text from the machines so ideally it will be a file that I need sending, maybe even an XML file so I can parse it into a database easily.
The main issue I have is I need to do this in near enough real-time. For example if an event happens on pc1, I need to be able to send that event plus any relevant information back to a central pc so it can be used and viewed almost immediately.
The plan is to write a python program that possibly acts as a sort of client that detects the event and sends it off to a server program on the central pc.
Does anyone have suggestions on a reliable way to send data from multiple computers to one central computer/server all on the same network and preferably without going out onto the web.
I assume you are working only on a secure lan, since you do not speak about security, but only low latency. In fact there are many solutions each with its advantages and drawbacks.

Simple messages using UDP. Very low overhead on network, client and server. Drawback : in UDP you can never be sure that a message cannot be lost. Use case : small pieces of information that can be generated at any time with high frequency, and it is not important if one is lost
Messages over a pre-established TCP connection. High overhead on server, client and network, because each client will establish and maintain a connection to the server, and the server will simultaneouly listen to all its clients. Drawback: need to reopen a connection if it breaks, server will have to multiplex io, you have to implement a protocol to separate messages. Use case : you cannot afford to loose any message, they must be sent as soon as possible and each client must serialize its own messages.
Messages over TCP, each message will use its own connection. Medium overhead. Drawback : as a new connection is established per message, it may introduce a latency and overhead in high frequency events. Use case : low frequency events, but a single client PC may send simultaneously multiple messages
method of sending data from multiple computers too a central location in real-time using python