Tcpserver 's throughput.

I seeing some posts on this forum says that ,the server made by xojo can handle 250M per second data . right?
is that true? is there a realized tcpserver handles C10K here?

Are you referring to TCPSocket? Or ServerSocket? There is no TCPServer class.

yeah,I meaning serversocket (tcpsocket)

I think it’s pretty safe to say the answer to your question is most likely no. The 250M per second is not specific enough units for me to be sure, but I doubt anyone here has made a xojo server that handles more data per second than a 1Gbps ethernet port can manage. Maybe if you mean Mbps, that might have been done.

Also, C10K if it means 10,000 simultaneous connections, I don’t think anyone here would attempt that without the benefit of a purpose made proxy of some kind like HAProxy.

Having said all that, I’m sure you could do it with the right tools in addition to Xojo, but I’m not sure what you’re actually trying to do, so I don’t know if that is a good answer for you or not.

It’s also worth mentioning that the throughput of the socket depends greatly on your processing code.

If you are just writing 0’s to the wire it will probably meet any realistic expectations. The reality is you have all kinds of IO limitations from wherever you are deriving your source data.

Oh, we created a Server based on ServerSocket and can transfer 50 MB/s from one computer to other over LAN.

There is a known problem with server sockets that make RECEIVING data difficult with them. They are somehow limited to 8k blocks of data in any given read. And then you have to wait for another 8k which means waiting for another 10ms at least as the smallest program loop timing amount. You’ll never get more than one block of 8k in any trip through the event loop.


If you wish to receive data faster than that please sign on to that bug report. If you need to service only a single connection not through a server then you can send data MUCH faster than 8k per loop. If you need to accept an unknown amount of incoming connections then you’re hosed and must deal with the data much more slowly.

what about a realtime push service ,one package is 10-300Byte on a 4G/2.5ghz cpu as a node.