I’m starting a project that will involve a rather unusual client interface to email, newsgroups, and retrieving and posting webpages. I’m deciding on a platform, and OS X looks about ideal, though my experience so far is on Windows. I’ve done socket communications before, but would rather not - this project will be hairy enough without reinventing the wheel.
Just curious … who is “I’m”? Since Wiki doesn’t have users and thus can’t log user information, it really helps to tell us who you are so we have some context.
Thanks for the tip, Mike, this was my first wiki post. I’ll write up a little bio when I get a chance. –Dennis —- Take a look at the OmniFrameworks, especially OmniNetworking.
I did look at that page, didn’t see any mention that http and so on were built in. Is that the case? Also, I forgot to mention that I need something GPL-compatible (unless it’s part of the OS). –Dennis
OmniNetworking itself is a socket layer, but there are other OmniFrameworks that sit on top of it to provide http, and other services. Check out the link to their site for more specifics. Basically, it’s most of the guts of OmniWeb. I found everything above OmniNetworking though to be difficult to follow, especially for Cocoa newbies. The Omni folks have years of experience and it shows. ;)
Hasn’t our illustrious host created a basic socket class? There’s a link somewhere on this site
Yes, I wrote SmallSockets. But it too is just a socket layer, it doesn’t implement HTTP or anything fancy like that.
I think TheOmniGroup has OmniWebFramework (OWF) or something, which can do HTTP getting, and possibly FTP too?
Yep. It’s kind of complex though. See OmniFrameworks for more info.
Hmm. So far it sounds like Omni is the only thing available, and it’s hard to work with–plus when I looked at the Omni license, it prohibited distribution of modified sourcecode. Probably I’d be better off using Unix stuff for networking.
It really seems to me that common internet protocols ought to be part of standard OS APIs at this point. Windows does have some of this - it’s fairly simple to do http retrieval, mail, or ftp from a VB program.
Why would you want to modify the source? It works fine.
For one thing, I’m planning on a GPL release, which means I need code compatible with the GPL. For another, given that this will be open code, if the interface to Omni is hard to work with that could be something worth fixing, to make it easier for anyone who wants to contribute to my project. For another, any protocols (present or future) not in Omni might require changes to Omni code, so the protocols can be added in a way that’s consistent with the others.
I just picked up LearningCocoa, and it mentions in passing some built-in internet protocols. I may end up just picking up an iMac and seeing for myself.