home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-01 | 2.4 KB | 121 lines | [TEXT/PJMM] |
- program TCPOOExampleCode;
-
- { You can do anything you want with this code - if you can make any money out of it, you'll be doing well! }
-
- uses
- TCPTypes, TCPStuff, TCPOOConnections;
-
- const
- user_name = 'peter';
- dest_name = 'cujo.curtin.edu.au';
- dest_port = 79;
-
- var
- quitNow: boolean;
-
- type
- MyAddressSearchObject = object(AddressSearchObject)
- procedure Failed (oe: OSErr);
- override;
- procedure FoundAddress (ip: longInt);
- override;
- end;
-
- type
- FingerObject = object(LineConnectionObject)
- procedure LineAvailable (line: str255);
- override;
- procedure Established;
- override;
- procedure Closing;
- override;
- procedure Destroy;
- override;
- procedure Failed (oe: OSErr);
- override;
- end;
-
- procedure FingerObject.Failed (oe: OSErr);
- begin
- writeln('Failed to open with error ', oe);
- quitNow := true;
- end;
-
- procedure FingerObject.Established;
- begin
- writeln('Established');
- SendLine(user_name);
- end;
-
- procedure FingerObject.Closing;
- begin
- writeln('Closing');
- Close;
- end;
-
- procedure FingerObject.Destroy;
- begin
- quitNow := true;
- writeln('Closed');
- inherited Destroy;
- end;
-
- procedure FingerObject.LineAvailable (line: str255);
- begin
- writeln('>', line);
- end;
-
- procedure MyAddressSearchObject.Failed (oe: OSErr);
- begin
- writeln('Failed to find the address with error ', oe);
- quitNow := true;
- end;
-
- procedure MyAddressSearchObject.FoundAddress (ip: longInt);
- var
- oe: OSErr;
- obj: FingerObject;
- begin
- writeln('Found address ', ConnectionsAddrToStr(ip));
- new(obj);
- oe := obj.NewActiveConnection(0, ip, dest_port);
- obj.crlf := CL_CRLF;
- writeln('NewActiveConnection gives ', oe);
- end;
-
- procedure HandleEvents;
- var
- dummy: boolean;
- er: eventRecord;
- begin
- dummy := WaitNextEvent(everyEvent, er, 15, nil);
- if er.what = keyDown then
- quitNow := true;
- dummy := HandleConnections(2);
- end;
-
- var
- oe: OSErr;
- addrobj: MyAddressSearchObject;
- begin
- ShowText;
- quitNow := false;
- oe := InitConnections; { Startup the TCP units }
- writeln('Init Connections gives ', oe);
- if oe = noErr then begin
- new(addrobj);
- oe := addrobj.FindAddress(dest_name);
- writeln('Find Address gives ', oe);
- while not quitNow do begin
- HandleEvents;
- end;
-
- FinishConnections; { Close everything, clean up }
- { ALWAY CALL THIS, OR YOU WILL BE SORRY! }
-
- end;
-
- writeln('Click to quit');
- while not Button do
- ;
- end.