REALbasic Networking Improvements

| | Comments (3)

Here's my wishlist for networking improvements I would like to make "in my spare time". It's not a feature list, and not a single thing on here is a scheduled feature. It's just the sort of thing I'd like to see done at some point because it bothers me for one reason or another. Also, they're in no particular order.

  1. Full interface support
  2. Currently, we only report back interfaces that you can do something sensible with in terms of sockets, that we've been able to test. This means that the only interfaces we report are active ethernet interfaces (eth0, en0, etc). We don't report things like firewire interfaces, or interfaces with no connection. I'd like to see us report all interfaces (including the loopback!) and if you try to hook one up to a socket and it doesn't make sense -- so be it. You get an error. Also, I'd like to see more fields on the NetworkInterface class such as the MTU, etc.
  3. Multi-homing support
  4. We currently only support multiple interfaces, but that's only half the battle. I would like to see us support the concept of a single NIC card having multiple addresses associated with it (ie, multi-homing) so that the relationship is no longer 1-NIC-to-1-IP.
  5. IPv6
  6. I've done a bit of work to get us IPv6 ready, but since I have no way to test it, I really don't know how well it works. Unfortunately, in order for me to really feel comfy that I have the support done and in good condition, I need to rewrite a lot of code -- yech. Of course, this can't really be done until we drop older systems like Classic and Windows 98 since those have almost no support for IPv6 (if any).
  7. Smarter UDP Sockets
  8. We currently support some of the nifty features of UDP, such as multicasting, but we don't support all the nifty features of UDP due to it being confusing for networking n00bs. For example, we're currently using the POSIX function "sendto" when sending datagrams out. This works great if you're sending datagrams to a bunch of different IP addresses. But it works slow if you're sending all your data to a single address due to the way sendto works. sendto basically does a temp connect, a send, then a temp disconnect. If you all your data is going to a single locations, you could do the connect and disconnect yourself and bypass sendto (instead, use send). This speeds up your UDP sends by a bunch since you're cutting out 2/3 of the operations per send.
  9. ICMPSocket
  10. We don't currently support the ICMP protocol (for things like ping and echo), and I would really like to support it.
  11. Better IPCSocket on Windows
  12. Our current implementation of the IPCSocket on Windows is rather hackish. It's certainly functional (we use it for local debugging on Windows), but it has quirks to it when out of the ordinary things happen (such as an application crashing doesn't report a 102 error immediately, and things like that). Microsoft chose to not have domain sockets with its WinSock implementation, and so I ended up rolling my own IPCSocket using memory-mapped files. It's damn speedy, but touchy. I'd like to round the implementation off under the hood to make them more stable.

So if you ever lay awake at night wondering what a REAL Software engineer thinks about in terms of fun things they'd like to add to the framework, you can rest easy now. I don't know when I'll ever get the time to add these things, but who knows!

3 Comments

Holy crap, I just realized that this was post #100! w00t! Isn't that just grand?

Instead of all those listed things, how about just fixing all the networking bugs in RB 5.5.4?
We'd settle for that ok?
How about it.
: serversocket maxconnected property does nothing in OS X 10.3 Rb 5.5.4.
:Autodiscovery does not work in RB 5.5.4 Mac OS X 10.3.
It doesn't even let me make an Autodiscovery class and when I've tried to use my friends Windows project that had
autodiscovery it changed the class to 'Object' on my Mac.
Thanks.

Getnetworkinterface and MACaddress still don't work properly in RB 5.5.4 OS X.
How about making SSL sockets be able to listen securely?


You guys have ALOT OF BUG FIXING TO DO BEFORE YOU EVEN THINK ABOUT ADDING NEW FEATURES.
I don't know if you are aware of it or not but Realbasic's credibility is greatly diminishing on the RB posting boards.
Most if not all of the longtime/serious/experienced RB users are dumping RB because of it's many bugs and the Realsoftware's employee's lack of action in fixing them.
It is as if you people are deaf to our bug reports/complaints.
It is almost as if you are intentionally selling bug-ware to make us pay for fixes.


We need Realbasic's functions to work as advertised WITHOUT BUGS and we need it to work reliably AT THE TIME OF PURCHASE NOT MANY MONTHS LATER OR MAYBE NEVER.

You people have no right working on RB 6 when RB 5.5.4 [x] still has many bugs.

Until then please do not expand and new features or platforms or anything else as it is obvious you are beyond your means and Realbasic is suffering. Just please fix your damn bugs so we get a reliable worthwhile product.

If you don't then people will not continue to buy Realbasic nor support Realbasic.
I don't know what the heck happend or why there are so many bugs with 5.5.x, but this has got to be corrected it is unacceptable.

seven card stud contest

You are invited to visit the sites about home poker game espn world series of poker

Leave a comment

Disclaimer

I'm currently an employee of REAL Software. My blog is mine. The opinions represented in this blog are mine as well and may not represent my employer's opinions. All original material is copyrighted and property of the author.

REALbasic® is a registered trademark of REAL Software, Inc. REAL SQL Server™ and Lingua™ are pending trademarks of REAL Software, Inc. All rights reserved.