#!/usr/local/bin/perlrequire "macchat.pl";$family = &MacPerl'Pick("Choose a socket family", "Unix", "Appletalk", "TCP/IP", "PPC")	|| die "You didn't specify a socket family !";$server = answer("Who are you ?", "Server", "Client");if ($family eq "Unix") {	$family = &GUSI'AF_UNIX;	$addr = 	&MacPerl'Choose($family, 0, "", "", $server ? &GUSI'CHOOSE_NEW : 0)			|| &GUSI'pack_sockaddr_un($family, "MacChat");} elsif ($family eq "Appletalk") {	$family = &GUSI'AF_APPLETALK;	$addr = 			&MacPerl'Choose($family, 0, "Address ?", 			&GUSI'pack_sa_constr_atlk("MacChat"), 			$server ? &GUSI'CHOOSE_NEW : 0);	unless ($addr) {		$addr = &GUSI'pack_sockaddr_atlk_sym(&GUSI'ATALK_SYMADDR, "MacChat", "MacChat", "*");	}} elsif ($family eq "TCP/IP") {	$family = &GUSI'AF_INET;	$addr = ($server ? 0 : (ask("Host ?") || die "You refused to specify a host !"));	$port = ask("Port ?") ||Ędie "You refused to specify a port number !";	$addr = &GUSI'pack_sockaddr_in($family, $addr, $port);} elsif ($family eq "PPC") {	$family = &GUSI'AF_PPC;}if ($server) {	&macchat'open_listen($family, $addr) || die "Opening failed";	&macchat'print("Welcome to this chat server.\n");} else {	&macchat'open_port($family, $addr) || die "Opening failed";}print "?\n";while (<>) {	if (/wr (.*)/) {		&macchat'print("$1\n");	} elsif (/rd/) {		&macchat'expect(10, 			'.|\n', q{print $macchat'thisbuf; undef $macchat'S},			'TIMEOUT',  q{print "Timed out !\n"; undef $macchat'S});	} elsif (/q/) {		last;	} else {		print "Valid commands are:\n";		print "   rd                  - Read a line.\n";		print "   wr text             - Write a line.\n";		print "   q                   - Quit.\n";	}	print "\n?\n";}print "\nHave a nice day.\n";