xx
■CONTENTS
■CHAPTER 26 Project 7: Your Own Bulletin Board. . . . . . . . . . . . . . . . . . . . . . . 499
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Second Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Writing the Main Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Writing the View Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Writing the Edit Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Writing the Save Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Trying It Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
■CHAPTER 27 Project 8: File Sharing with XML-RPC. . . . . . . . . . . . . . . . . . . . 517
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Implementing a Simple Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Trying Out the First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 525
Second Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Creating the Client Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Raising Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Validating File Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Trying Out the Second Implementation. . . . . . . . . . . . . . . . . . . . . . . 534
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
■CHAPTER 28 Project 9: File Sharing II—Now with GUI!. . . . . . . . . . . . . . . . 537
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Second Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545