Socket Backlog behaviour

浪子不回头ぞ 提交于 2019-12-23 02:52:38

问题


In case of a Serversocket have full of request in its backlog and doing a long running job what will be the socket behaviour. When I try this, from windows telnet is ok, it connects. But from unix it gets "connection refused". My application is written in java and running on IBM jvm. By the way I came to that point where our application was not responding telnet from unix. Not respoing means it was writing "tyring..." and hangs, not refusing or connecting. Can anybody justify this behavior? Thank you.


回答1:


You should not get "Connection refused", if the socket is in LISTEN state. Until you exhaust the slots provided by the backlog setting, your connect requests should be acknowledged (but nothing more happens). When you reach the backlog limit set by the listen system call, "Trying..." is the normal behaviour (the server is dropping packets until a listening backlog slot is available, the client is retransmitting SYN packets until the connect timeout happens or the server acknowledges the connect request).



来源:https://stackoverflow.com/questions/20352743/socket-backlog-behaviour

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!