how can you receive anything concurrently? there's one pipe the data is flowing down. And looking at the java client EClientSocket class it has one thread running writing to the socket output streamYes, I only instantiate one socket shared among all the threads. That shouldn't be the bottleneck though because I can receive the bid/ask for strikes, deltas, and historical bars concurrently. But you're right. I could allocate a new socket client for each puller. What's the maximum number of connections allowed?