[erlang-questions] Can gen_tcp:close() close a socket which is still sending?

Tony Rogvall tony@REDACTED
Mon Jun 15 09:52:27 CEST 2009


So what happens if you use shutdown write?
Use ethereal or tcpdump to get a trace!

/Tony


On 15 jun 2009, at 04.26, John Haugeland wrote:

> The client will not shut down.
>
> The issue is that, conceptually, what needs to happen is the server
> should provide a response then drop as soon as its response is
> completely dispatched.  Erlang is not waiting for the other side to
> close.  Erlang is completely in control here.  The desired behavior is
> solely guided by when that gen_tcp:send(...) is complete.
>
> It's a webserver.  The client doesn't close the connection.
>
>
>
>
>
> On Sun, Jun 14, 2009 at 4:48 PM, Tony Rogvall<tony@REDACTED> wrote:
>>
>> The "safe" way to terminate a sending socket is to use shutdown(S,  
>> write)
>>
>> and then wait for the server side to close the connection.
>>
>> This here may be exactly what I need to know.  To check, first,
>> though: in context, erlang _is_ the server side.  Does that change
>> things?  The client is any web browser.  I apologize for having been
>> unclear.
>>
>>
>>
>> Then perhaps you should check the exit_on_close option in the inet  
>> module.
>> If the client uses shutdown you will be able to write data to the  
>> client and
>> then close after this is done.
>> /Tony
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>



More information about the erlang-questions mailing list