back in local file of the same name the most novel feature here is the protocol between client and serverthe client starts the conversation by shipping filename string up to the serverterminated with an endof-line characterand including the file' directory path in the server at the servera spawned thread extracts the requested file' name by reading the client socketand opens and transfers the requested file back to the clientone chunk of bytes at time running the file server and clients since the server uses threads to process clientswe can test both client and server on the same windows machine firstlet' start server instance and execute two client instances on the same machine while the server runs[server windowlocalhostc:\internet\socketspython getfile py -mode server server connected by ( ' at sun apr : : server connected by ( ' at sun apr : : [client windowlocalhostc:\internet\socketsdir / gif txt file not found :\internet\socketspython getfile py -file testdir\ora-lp gif client got testdir\ora-lp gif at sun apr : : :\internet\socketspython getfile py -file testdir\textfile txt -port client got testdir\textfile txt at sun apr : : clients run in the directory where you want the downloaded file to appear--the client instance code strips the server directory path when making the local file' name here the "downloadsimply copies the requested files up to the local parent directory (the dos fc command compares file contents) :\internet\socketsdir / gif txt ora-lp gif textfile txt :\internet\socketsfc / ora-lp gif testdir/ora-lp gif fcno differences encountered :\internet\socketsfc textfile txt testdir\textfile txt fcno differences encountered as usualwe can run server and clients on different machines as well for instancehere are the sort of commands we would use to launch the server remotely and fetch files from it locallyrun this on your own to see the client and server outputs[remote server window]python getfile py -mode server network scripting