> I have very mixed emotion about the current rxsock library. 
> Let me just list some thoughts in no particular order.
> 
> - The rxsock library is extremely complicated to use. You 
> have to really know how sockets work in order to use it. 

On the other hand, if you've already used sockets in (say) C, then it is a
straightforward wrapper.  So this might be more of a documentation issue (and
changes from the way it works in C might steepen the learning curve).

> There is not a high-level interface to it which is why I 
> wrote rxsock.cls.

A high-level interface is good; fxftp.cls, for example, was a doddle to use when
I had to convert from using the rxftp functions.   The downside is when you need
to set one of the obscure TCP/IP options (not necessary for FTP, in my
experience) and it is not available in the higher-level model.  

> - I think there might be a big difference between Windows and 
> Linux users of rxsock, but I am not sure I can explain why. 
> It is just a feeling I have.
> - Sockets are hard, and do not let anyone tell you 
> differently. The rxsock library hides some of that complexity 
> by just not allowing you access to it, like datagrams, udp, 
> etc. You only get access to the TCP protocol from rxsock.

Not sure I follow .. UDP, etc., are not sockets, so they do not complicate
sockets?  

> - Although IPv4 and IPv6 use mostly the same APIs, there are 
> differences in the data structures that are passed to those 
> APIs. Thus it makes it harder for the users of rxsock to 
> differentiate between IPv4 and IPv6 if the ooRexx function 
> calls stay the same since we hide the data structures from the user.

Good point.

> At this point I am leaning towards the creation of a class 
> library for sockets to support IPv4 and IPv6. This would not 
> replace the current rxsock library but would be made 
> available for the ooRexx users to migrate to eventually. I 
> think this could make sockets much easier to program. We 
> could use the rxsock.cls as a starting point to figure out 
> how it should be organized and what methods should be available.

Maybe it should be task-oriented, and be higher-level than TCP/IP, even.  TCP/IP
and sockets are really quite low-level in the bigger (deeper, more complex)
scheme of things.

Mike


------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to