Xref: utzoo comp.protocols.tcp-ip:10559 comp.sys.mac.programmer:13119 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!brutus.cs.uiuc.edu!apple!hayes From: hayes@Apple.COM (Jim Hayes) Newsgroups: comp.protocols.tcp-ip,comp.sys.mac.programmer Subject: Re: Mac TCP--Info?? Message-ID: <39441@apple.Apple.COM> Date: 13 Mar 90 04:51:08 GMT References: <7990@tank.uchicago.edu> Organization: Apple Computer Inc., ECO Networking Group Lines: 65 asl2@tank.uchicago.edu (Aaron "Fish" Lav) writes: > What exactly is MacTCP? Is it a released product? Is it free? > In general, if I want to write TCP/IP programs for the Mac and don't > want to reimplement > TCP/IP/UDP/etc myself, what's the recommended thing to do? I've posted this for others as well as Aaron instead of using E-mail. This is not an advertisement. This is FYI. Officially: MacTCP is a software driver for the Macintosh Operating System that allows developers to create Macintosh applications for network environments that use TCP/IP. MacTCP is a site-licensed product for developers. It can be ordered via the Apple Software Licensing Department. Dunno if it costs anything. Functionally: MacTCP is an implementation of TCP/IP for the native Macintosh OS. It supports socketed UDP datagrams, TCP streams, ICMP messages, Domain Name Service (DNS) name resolution, static, dynamic and server based IP address assignment. It also understands the "routed" routing information protocol. It has a "control panel" interface. This is a DRIVER and not application level software. It is co-resident with other drivers, including AppleTalk, so you can use AppleTalk AND MacTCP simultaneously. Technically: Programs you create that use MacTCP may pass data buffers into and out of the driver, or, use a scatter-gather buffer arrangement to eliminate buffer copying. It uses standard driver calls like PBOpen, PBClose and PBControl. On LocalTalk (or Ethernet networks with no IP routing capabilities), MacTCP can encapsulate TCP/IP in AppleTalk packets for later decomposition at an AppleTalk/IP bridge on the destination network. (I.e. Kinetics FastPath, Cayman GatorBox, etc.) Reality: Writing your first program using MacTCP is like writing your first BSD UNIX client/server-- It hangs, it crashes, it misbehaves. But once you perfect it, re-using your code is simple provided you put some thought into its design. If you are going to use it, I recommend Object Pascal or C++. Make "connection objects" in which you create instances of TCP or UDP "connections" that have "read" and "write" methods. It gives you reusable code and makes good cognitive sense. If you're not into objects, traditional methods work well too. -- Jim Hayes, TCP/IP Weenie Advanced Technology Group, Apple Computer Inc. Inet: hayes@apple.com UUCP: {amdcad|decwrl|ames}!apple!hayes