Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My application running on Solaris need send tcp packages to client in time, but sometimes the packages send delayed. I know can create socket with TCP_NODELAY to resolve the issue, but the code can not be changed. Can someone tell me where do I set the TCP_NODELAY to ON in Solaris ( Any version ). Does Solaris supports this parameter. I searched of the manual, but not see any useful information.

share|improve this question

Solaris supports TCP_NODELAY as a socket option you can set in the code - there is no global setting to force it on for all connections. The best I can think of is to write a small LD_PRELOAD module that interposes on socket() or connect() to call the required getsockopt() as well.

share|improve this answer

You can't fix code without changing it. You won't find a real solution because the problem is in the code and you aren't willing to change the code. There are rules that have to be followed when handing outbound data to the TCP stack, and if the code doesn't follow them, it will get 200ms delays. That's just the way TCP works -- it doesn't guarantee timely transmission.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.