[Jprogramming] sdcleanup_jsocket_ on osx
Pascal Jasmin
godspiral2000 at yahoo.ca
Tue Mar 11 05:17:14 UTC 2014
I found some example code for SO_LINGER in JforC, but I don't know if it is outdated, or does not work for osx:
first the exact example:
sdcheck_jsocket_ sdsetsockopt 0, SOL_SOCKET_jsocket_,SO_LINGER_jsocket_, 1 66
fails due to length error 5 params for 4 expected.
but other attempts also fail including:
sdcheck_jsocket_ sdsetsockopt_jsocket_ 0, SOL_SOCKET_jsocket_,SO_LINGER_jsocket_, 1
sdcheck_jsocket_ sdsetsockopt_jsocket_ 0, SOL_SOCKET_jsocket_,SO_LINGER_jsocket_, 0
The latter corresponds to the value of sdgetsockopt.
There is exception handling code for SO_LINGER in set and get sockopt. Is the issue I am having osx specific?
sdsetsockopt=: 3 : 0
's lev name val'=. y
if. name -: SO_LINGER do. val=. 65536 65536#.val end.
rc0 setsockoptJ s;lev;name;(,val);4
)
there i
----- Original Message -----
From: Pascal Jasmin <godspiral2000 at yahoo.ca>
To: "programming at jsoftware.com" <programming at jsoftware.com>
Cc:
Sent: Monday, March 10, 2014 3:30:53 PM
Subject: Re: [Jprogramming] sdcleanup_jsocket_ on osx
thank you for pointing this out.
While trying to make a reset verb, I can't seem to set this option:
cocurrent 'jsocket'
sdreset =: 3 : 0
pD v=. sdcheck sdgetsockopt 0; SOL_SOCKET_jsocket_;SO_LINGER_jsocket_
pD sdcheck sdsetsockopt 0;SOL_SOCKET_jsocket_;SO_LINGER_jsocket_; 1 0
pD sdcleanup_jsocket_ ''
pD sdsetsockopt 0;SOL_SOCKET_jsocket_;SO_LINGER_jsocket_; v
)
The first line returns ,< 0 0
its not clear how to pass the shape component in the 2nd line, but at any rate, I generate EINVAL errors no matter what I try to pass in set option, including 0 0 or ,< 0 0.
Could you please help in how to call sdsetsockopt for SO_LINGER?
----- Original Message -----
From: bill lam <bbill.lam at gmail.com>
To: programming at jsoftware.com
Cc:
Sent: Monday, March 10, 2014 10:57:56 AM
Subject: Re: [Jprogramming] sdcleanup_jsocket_ on osx
This is socket linger timeout, a feature not a bug. you may set tcp option
to disable it but I guess it is there for a good reason.
On Mar 10, 2014 10:51 PM, "Pascal Jasmin" <godspiral2000 at yahoo.ca> wrote:
> actually, an idle loop doesn't always free up resources. Though load
> 'socket' seems to reset it.
>
>
> ----- Original Message -----
> From: Pascal Jasmin <godspiral2000 at yahoo.ca>
> To: "programming at jsoftware.com" <programming at jsoftware.com>
> Cc:
> Sent: Monday, March 10, 2014 10:31:53 AM
> Subject: [Jprogramming] sdcleanup_jsocket_ on osx
>
> sdcleanup_jsocket_ '' on windows will close all sockets correctly. On
> OSX, it seems to require going to idle loop before any reuse of previous
> sockets (listen) is done.
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list