text: embodiments of the invention are discussed below with reference to fig1 - 13b . however , those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments . fig1 is a schematic diagram illustrating two portable computers interconnected through a network . specifically , fig1 illustrates the first computer 2 having a display screen 4 interconnected to a second computer 6 having a display screen 8 . in this example , an external infrared ( ir ) device 10 is connected to the second computer 6 through a cable 12 . the ir device 10 is interconnected to the first computer 2 through an infrared link 14 . hence , in this example , the network interconnecting the first computer 2 and the second computer 6 includes the infrared link 14 . the infrared device 10 and the cable 12 are typically viewed as extensions of the first computer 6 . however , the network could also be considered as including the ir device 10 , the cable 12 and the infrared link 14 . the first computer 2 and the second computer 6 are more commonly interconnected without using the ir device 10 and its associated cable 12 . namely , the first and second computers 2 , 6 can be connected with only the infrared link 14 , but this requires that an infrared port ( not shown ) on the first computer 2 point to an infrared port ( not shown ) on the second computer 6 . however , in the diagram shown in fig1 it is assumed that the second computer 6 lacks an infrared port , thus the ir device 10 and its associated cable 12 in effect provide the second computer 6 with an infrared port . the ir device 10 offers greater flexibility in positioning the first and second computers 2 , 6 because they need not point at each other . fig2 a - 2c are schematic diagrams illustrating a temporary interruption of a network link between first and second computers . in fig2 a , an infrared port on the first computer 2 is pointed directly at an infrared port on the second computer 6 . this is known as point - to - point alignment . typically , with portable computers , the infrared port is on the back of the computer . the first and second computers 2 , 6 are then able to establish an infrared link 16 between the infrared ports of the respective first and second computers 2 , 6 . data is then able to be transmitted between the first and second computers 2 , 6 over the infrared link 16 . in fig2 b , the previously established infrared link 16 is shown as being interrupted by an object 18 . the object 18 interrupts the light beam associated with the infrared link 16 . as a consequence , the infrared link 16 is lost and can no longer be used to transmit data between the first and second computers 2 , 6 . alternatively , the infrared link 16 could likewise be interrupted by movement of one of the first and second computers 2 , 6 such that the infrared ports no longer point ( i . e ., misaligned ) to one another . for example , during a data transfer , a user might bump the first computer 2 sending it out of point - to - point alignment with the infrared port of the second computer 6 . in this case , the infrared link 16 is also lost and unavailable to support data transmission . fig2 c illustrates the situation after the object 18 no longer interferes with the infrared link 16 . namely , the infrared link 16 is only temporarily interrupted by the object 18 . once the object 18 no longer blocks the light beam associated with the infrared link 16 , the infrared link 16 can be reestablished . conventional approaches , however , are not able to resume the infrared link 16 without restarting the entire network connection and data transmission sequence . it is frustrating and a substantial burden on the user to have to restart the entire transmission sequence each time the link 16 is temporarily interrupted . the invention provides novel network link management techniques to substantially eliminate the burdens on the user and otherwise the improved ease of use when network links are temporarily interrupted . fig3 is a block diagram of a computer system 100 in accordance with the invention . the computer system 100 , together with programming instructions or computer code associated with the operations of invention ( described below ), are able to carry out and obtain the benefits of the invention . the computer system 100 includes a cpu 102 connected to a mass storage unit 104 via a bus 106 . also coupled to the bus 106 is a random - access memory ( ram ) 108 and a read - only memory ( rom ) 110 . the ram 108 typically includes data and programming instructions . the rom 110 includes basic operating instructions , data and objects used by the computer system 100 to perform its functions . the mass storage unit 104 generally includes additional programming instructions , data and objects that are not in active use by the cpu 102 . the computer system 100 further includes a display screen 114 for viewing text and images generated or displayed by the computer system 100 . additionally , an i / o controller 112 is coupled to the cpu 102 to control input / output operations ( including network connections ) with the computer system 100 . in the embodiment shown in fig3 the 1 / o controller 112 is coupled to and controls an i / r transmitter / receiver 116 . typically , the i / r transmitter / receiver 116 is built into the housing of the computer system 100 ( such is commonly known as an infrared port ). for example , in the first and second computers 2 , 6 shown in fig1 and fig2 a - 2c , the i / r transmitter / receiver 116 is associated with an infrared port built into the back of the portable computers 2 , 6 . the cpu 102 together with an operating system ( not shown ) operate to execute computer code or programming instructions . the computer code may reside on the ram 108 , the rom 110 , or a mass storage unit 104 . the computer code could also reside on a portable ( or removable ) program medium 118 and then loaded or installed onto the computer system 100 when needed . portable program mediums 118 include , for example , cd - roms , pcmcia devices , ram devices , floppy disk , magnetic tape . the transfer of data between a first computer and a second computer is achieved through a network . the computer that is transferring data to the other computer is the sending side computer . the computer receiving the data from the other computer is the receiving side computer . the sending side computer performs send - side processing when sending data . the receiving side computer performs receive - side processing when receiving data . preferably , the send - side processing and the receive - side processing are each objects of object - oriented programming . each computer can operate as the send - side or the receive - side . further , a single computer can both send and receive simultaneously . fig4 is a flow chart of send - side processing 200 according to a basic embodiment of the invention . the send - side processing 200 first initializes 202 the mechanism for transferring data from the sending computer to the receiving computer . next , the sending computer ( sender ) searches 204 for available receiving computers ( receiver ). here , the sending computer operates to determine which computers are available to receive data through the network . then , a decision 206 is made based on whether there is data to be sent . if there is no data to be sent , then the send - side processing 200 returns to repeat block 204 until there is data to be sent . once there is data to be sent , then the data is sent 208 while the availability of the receiver of the data is monitored . as long as the receiver remains available , the data continues to be sent 208 . however , should the receiver become unavailable , then the data ceases being sent 208 until the availability of the receiver is reacquired . fig5 a and 5b are flow charts illustrating send - side processing 300 in accordance with a preferred embodiment of the invention . the send - side processing 300 first initializes 302 the mechanism for transferring data from the sending computer to the receiving computer . the initialization 302 includes initializing the network transfer protocol as well as various programming objects being utilized . then , the send side processing 300 searches 304 for available receivers on a network . next , a decision 306 is made based on whether there is data in a data queue waiting to be sent . if there is no data in the data queue waiting to be sent , the send - side processing 300 returns to repeat block 304 until there is data in the data queue to be sent . once there is data in the data queue to be sent , a decision 308 is made based on whether the receiver address is still valid . here , the decision 308 is a verification that the particular receiver to receive the data is still available prior to starting the data transfer . name binding protocol ( nbp ) can be used for this purpose . if the receiver address is no longer valid , then broken connection processing 310 is performed . if the result of the broken connection processing 310 is that the connection is gone , then processing returns to block 304 . on the other hand , if the broken connection processing 310 indicates that the receiver is now available , then the send - side processing 300 is resumed . hence , following decision block 308 when the receiver address is still valid or following the broken connection processing block 310 when the receiver is available , a reliable connection is established 312 . then , the data to be sent is dequeued 314 from the data queue . next , a decision 316 is made based on whether the receiver is still available . the decision 316 uses the results of the last network search 304 . the network search 304 is preferably a concurrent process invoked every 5 seconds just prior to and during data transfer . if the receiver is still available , then the data is sent 318 from sender to receiver over the network . the sending 318 of the data means that the data starts to stream out from the sender to the receiver via the network . a decision 320 is then made to determine whether there is additional data to send . if there is additional data to send , then the send - side processing 300 returns to repeat block 316 . as long as the receiver is still available , the data will be continually sent 318 until all of the data has been sent . preferably , at least a portion of the data is sent to a buffer which forwards the data to the network and then when decision blocks 316 and 320 are still affirmative , additional portions of the data are sent to the buffer as space becomes available in the buffer . after all of the data has been sent , the send - side processing 300 returns to block 304 and the send - side processing 300 repeats for the sending of other data to a receiver . on the other hand , when the receiver is no longer available , the decision block 316 causes broken connection processing 322 to be performed . if the broken connection processing 322 determines that the connection is open and the receiver is again available ( i . e ., physical link is reestablished ), then processing returns to repeat decision block 316 . thus , the data can be sent 318 even after being temporarily stopped or interrupted because of a temporary loss of the receiver . if the broken connection processing 322 determines that the connection is closed , then the connection is lost . hence , a decision 324 is made based on whether there is more data to be sent . if there is additional data to be sent , the data is requeued 326 . in any event , following block 324 when no additional data needs to be sent , block 326 , or block 320 when no additional data needs to be sent , the send - side processing 300 returns to repeat block 304 and blocks thereafter of the send - side processing . fig6 is a flow chart illustrating search for available receivers processing 400 in accordance with the invention . the search for available receivers processing 400 is performed by block 204 in fig4 and block 304 in fig5 a . the search for available receivers processing 400 broadcasts 402 a lookup operation on a network . preferably , the broadcast 402 is implemented by a concurrent process that performs the lookup operation by broadcasting over the network using the nbp protocol . the responses from the network are then collected 404 . the search for available receivers processing 400 then determines 406 whether receivers have appeared or disappeared since the last determination of their presence or absence was made . this can be achieved by maintaining a list or table of the receivers which are available to receive data . then , the next time the determination 406 is made , the list or table is used as a reference . next , a display screen associated with the sender is updated 408 so as to illustrate only the receivers which are currently available . preferably , the display screen illustrates an icon for each available receiver . however , it should be noted that the receivers themselves will typically have the sending side processing operations in effect as well so that their display screens will also be updated . for example , in fig1 , a representative window 410 is illustrated . the window 410 would be displayed on the display screen of the sending side computer to visually indicate to the user which receivers are available to receive data over the network . in fig1 , icon 412 indicates that the receiver identified as &# 34 ; clark donahue &# 34 ; is available to receive data . the receivers that remain available continue to be displayed , the receivers which have become available are newly displayed , and the receivers which have become unavailable are no longer displayed . fig1 is a schematic diagram of a receiver identifier ( table entry ) 800 of an availability table . the availability table lists the receivers available to receive data . the availability table is preferably searched and then updated during the search for available receivers processing 400 . the table entry 800 is a unique identifier for the receiver . in this example , the availability table would include a table entry 800 for each available receiver . the table entry ( receiver identifier ) 800 includes : a type 802 , a user name 804 , a random number 806 , and a network address . the type 802 indicates the type of data transfer protocol . the user name 804 indicates the user name of the receiver . for example , if the user of the receiving side computer is clark donahue , then &# 34 ; clark donahue &# 34 ; would be stored in the user name 804 . the random number 806 is used to ensure that the receiver identifier is unique . here , the combination of the user name 804 , the random number 806 and the network address 808 is guaranteed to be unique . the network address 808 is used to open a connection to the corresponding receiver . hence , when the search for available receivers processing 400 determines 406 the appearance or disappearance of receivers , the receiver identifier 800 shown in fig1 can be used within one or more availability tables to store previously available receivers , currently available receivers , or both . fig1 is a schematic diagram of a data queue 900 used in accordance with the invention . the data queue 900 contains the data transmission requests . the data transmission requests are processed by transmission request processing 500 discussed below with reference to fig7 . each entry in the data queue 900 contains a state 902 , time 904 of last attempted transfer , a destination 906 , and a pointer 908 to the data to be transmitted . the state 902 can be one of : waiting , busy and out of range . the waiting state is the initial state of the data transmission requests and it corresponds to the situation in which the receiver is believed to be available . when the receiver is believed to be available , its icon is displayed on the display screen of the sending side computer . the busy state indicates that the receiver is currently busy with another data transmission request to the receiver . the out of range state indicates that the receiver is off the network . when the state is out of range , the icon associated with the receiver is not displayed on the display screen of the sending side computer . the time 904 of last attempted transfer to the receiver is saved for all entries to that receiver when the receiver is busy . the time 904 can then be used in selecting items from the data queue 900 . the destination 906 is the destination address of the receiver and may take the form of the data structure shown in fig1 . the pointer 908 points to the block of data to be transferred for the corresponding data transfer request . fig7 is a flow chart illustrating transmission request processing 500 in accordance with the invention . the transmission request processing 500 is the processing preferably performed when the sending side computer has data it desires to send to one or more receivers . the transmission request processing 500 scans 502 items in the data queue of the sending computer . a decision 504 is then made based on whether there are any items within the data queue that are in a waiting state . if there are items in the waiting state , then the first item in the waiting state is selected 506 . alternatively , if there are no items in the waiting state , then a decision 508 is made based on whether there are any items in the data queue that are in a busy state . if there are one or more items in the data queue in the busy state , then the item in the busy state which has the oldest time of last sending attempt is selected 510 . the time 904 of last attempted transfer is held in the data queue 900 . following block 506 and 510 , as well as block 508 when there are no items in the busy state , the transmission request processing 500 is complete and returns . thus , the transmission request processing 500 determines the order in which the items in the data queue are to be transmitted over the network . note that the send - side processing 300 discussed above with reference to fig5 a and 5b also operates on the data queue 900 . when the data to be sent is dequeued ( block 314 , fig5 a ), the data to be sent is withdrawn from the data queue and forwarded to a sending object which performs the above described processing . as the data is transferred , a progress bar is preferably displayed on the display screen associated with the sending side computer so as to inform the user of the progress of the data transfer . if the data transfer is stopped due to an interruption , the progress bar would in effect show lack of progress . on the other hand , when the data being sent is requeued ( block 326 , fig5 b ), it is returned to the data queue 900 and its state is indicated as the out of range state . fig8 is a flow chart of broken connection processing 600 in accordance with the invention . the broken connection processing 600 details the operations performed by block 310 in fig5 a and block 322 in fig5 b ( as well as block 710 in fig9 to be discussed below ). the broken connection processing 600 presents 602 a dialog box ( or message window ) on the display screen . since both the send - side processing 300 and the receive - side processing 700 perform the broken connection processing 600 , the sender ( i . e ., sending side computer ) can be presented with the dialog box , and / or the receiver ( i . e ., receiving side computer ) can be presented with a dialog box . the contents of the dialog box informs the user that a broken connection is present . fig1 a illustrates an example of a dialog box 603 that would appear on the display screen of the sending side computer when a broken connection results during the sending of &# 34 ; clarisworks 4 . 0 &# 34 ; to the receiver &# 34 ; clark donahue &# 34 ;. next , a decision 604 determines whether the target ( sender or receiver ) is confirmed ( i . e ., still valid ). the target for the sender is the receiver , and the target for the receiver is the sender . if the target is confirmed , then its icon is drawn 606 on the display screen . fig1 b illustrates the dialog box 603 with the icon 607 for the receiver drawn when the target has been confirmed . then , a decision 608 determines whether the target has been available for a predetermined period of time . preferably , the predetermined period of time is on the order of five seconds . the predetermined period of time provides a lag in the processing so that connection availability cannot immediately follow connection unavailability . nevertheless , those in the art will recognize that the predetermined period of time could be longer , shorter or eliminated completely . if the target has been available for the predetermined period of time , then the broken connection processing 600 exits 610 with an indication that the connection is restored or fixed ( i . e ., available or open ). with the invention , the data transmission can resume despite having been interrupted temporarily . for example , in the case where the first computer and the second computer which were previously aligned , become unaligned during data transmission , the broken connection processing 600 enables the user to realign the first and second computers 2 , 6 so that the data transmission can be resumed . hence , the user is able to quickly determine whether the computers have become misaligned as well as realigned . further , the user no longer needs to restart the entire data transmission request because the data transmission will resume without any or minimal effort by the user . on the other hand , when the decision block 604 determines that the target is not confirmed , then the target icon is removed 612 from the display screen ( e . g ., fig1 a ). following block 612 or following decision block 608 when the target does not persist for the predetermined period of time , a decision 614 is made based on whether the connection is still open . if the connection is still open , a decision 616 determines whether the user has terminated the connection manually . if the user has not terminated the connection manually , the broken connection processing 600 returns to decision block 604 so that it can again be determined whether the target has been reacquired by the network . on the other hand , if the connection is no longer open or if the user has terminated the connection , the broken connection processing 600 exits 618 with an indication that the connection was terminated . fig9 is a flow chart of receive - side processing 700 in accordance with the invention . the receive - side processing 700 is the processing carried out by the receiver ( i . e ., receiving side computer ). as indicated above , each computer can simultaneously operate as a receiver and sender of data . the receive - side processing 700 establishes 702 a reliable connection to the sender . the details on the establishment 702 of the reliable connection were explained above with respect to block 312 of fig5 a . next , a decision 704 is made based on whether the sender is still available on the network . if the sender is still available , the decision 704 causes data to be received 706 at the receiver . a decision 708 is then made based on whether there is more data to receive . if there is more data to receive , then processing returns to block 704 so that the additional data can be received 706 so long as the sender is still available to the receiver via the network . if the sender is not available to the receiver , then broken connection processing 710 is performed . the details of the broken connection processing were discussed above with respect to fig8 . namely , if the sender becomes unavailable over the network to the receiver , then the broken connection processing 710 will attempt to reestablish the network link by notifying the user of the interruption ( e . g ., broken connection ), and thereafter , monitoring the network for reacquisition of the receiver . this provides time for either an interfering object to move out of the path of the network link or allows the user to realign one or both the sender and the receiver when they have become unaligned . in effect , the invention causes a logical network link to be maintained between the sending and receiving computers even though the physical link between the sending and receiving computers is lost . so long as the physical link can be returned within a predetermined period of time , the sending and receiving of data can function as if the network link was never lost , but merely briefly interrupted . for example , as shown in fig2 a - 2c , if the foreign object 18 temporarily blocks the infrared link 16 ( fig2 b ), the sending and receiving need not be restarted but can be resumed automatically once the foreign object clears the network link 16 ( fig2 c ). the resumption of the data transfer is preferably continued where the data transfer was interrupted . for example , when transferring 1 , 000 bytes of information from the sending computer to the receiving computer , if interrupted following transmission of the 501 st byte , then the processing would resume with the sending and receiving of the 502 nd byte and subsequent bytes . here , it is also assumed that the network transfer protocol provides a guaranteed delivery ( such as adsp for appletalk networks or tcp for ip networks ). alternatively , the data transfer could require the entire 1000 bytes be sent upon resuming data transfer following an interruption . the computer involved in the data transmission can be any computer device . when the computer is a macintosh brand computer produced by apple computer , inc ., the network is preferably appletalk and the protocol is preferably appletalk data stream protocol ( adsp ). adsp provides full - duplex data stream connection between two nodes on the appletalk network . even though adsp appears to its clients to handle data as a stream of bytes , the data is actually transmitted and received by datagram delivery protocol ( ddp ) in packets . ddp packets are transmitted onto the network by the link layer depending on the type of network ( e . g ., irtalk - ir link , localtalk , localtalknet , ethertalk - ethernet ). every adsp connection is between two sockets in an appletalk network . the combination of a socket and the adsp information maintained by the socket is referred to as a connection end . an open connection exists when two connection ends establish communication . when both connection ends terminate the link between the sockets and dispose of the connection information each maintains , the connection is a closed connection . however , if one connection end is established but the other connection end is unreachable or has disposed of its connection information , the connection is considered a half - open connection . no communication can occur over a half - open or closed connection . adsp automatically closes any half - open connections that are not reestablished within two ( 2 ) minutes . for more details on appletalk and adsp , see &# 34 ; inside macintosh , vol . vi &# 34 ;, apple computer , inc ., 1991 and &# 34 ; inside appletalk &# 34 ;, apple computer , inc . hence , in an embodiment of the invention using appletalk and adsp , there is a window of two ( 2 ) minutes in which the temporary interruption must be fixed before the network protocol closes the connection . block 614 of fig8 monitors whether adsp has closed the connection . the data transfer is preferably a file exchange or a file transfer . the sender sending side computer and the receiving side computer may be general purpose computer , dedicated computers , or some other computing device . examples of other computing devices include : servers , microprocessor based peripheral devices ( e . g ., printers ), storage devices , network controllers , and the like . although the emphasis of the above - described embodiments is on a wireless network using infrared beams , other wireless technologies ( such as radio ( rf )) can equally be used . radio could be temporarily interrupted by some sort of electromagnetic disturbance . wired technologies could also be used with the invention because wires or connections may be intermittent ( e . g ., bent connector pins , broken wire , etc .) the many features and advantages of the invention are apparent from the written description , and thus , it is intended by the appended claims to cover all such features and advantages of the invention . further , since numerous modifications and changes will readily occur to those skilled in the art , it is not desired to limit the invention to the exact construction and operation as illustrated and described . hence , all suitable modifications and equivalents may be resorted to as falling within the scope of the invention .