The art of doing : Python network applications with sockets. (Packt Publishing, 2022)
In this course, you will learn how to set up your own home network with static IP addresses and port forwarding so that anyone can access your programs over the Internet. Then you will learn how to set up a simple two-way chat in the terminal using the Socket module. Next, you will learn how to use the threading module to create a simple chat room in the terminal and how to use the Tkinter module to create a GUI chat room like the old AOL chat rooms. Later, we will look at how to create an advanced GUI chat room with admin window using the JSON module, and finally, how to create your own online multiplayer game using the Pygame module. As this is a project-based course, each project builds on the knowledge gained during the previous projects. In our culminating project, when we attempt to create our own online multiplayer game, we will be generating IPV4/TCP sockets to connect computers to a server running on a machine with a static IP and port forwarding enabled, creating various threads to run processes concurrently on our machines, we will use JSON to serialize python objects such as our game state and game players, and have a fully interactive GUI interface using Pygame. By the end of this course, you will have multiple projects you can share with friends or family, have them run a client script from their house, connect to your server script, and show off all you learned. What You Will Learn Use the socket module to create a terminal-based two-way chat Use the threading module to create a terminal-based chat room Use a Tkinter module to make a GUI chat room Configure router to allow communication from an external network Use the JSON/Pickle modules to build an advanced GUI chat room with an admin window Use the Pygame module to create an online multiplayer game Audience This intermediate course is intended for students with a basic understanding of Python and core programming concepts as well as comfort levels with both functional and object-oriented programming, as both will be used in the course's second half. Also, who is interested in learning how to write programs that can work over a network and communicate with one another. Although it will be helpful to have prior knowledge of different Python modules, we will take the time to teach you everything you need to know to construct the program in this course. About The Author Michael Eramo: Michael Eramo is a life-long learner, a self-taught programmer, and an experienced educator. He holds official bachelor's degrees in music, education, and physics and a master's in mathematics. He is also a Microsoft certified software developer. He has years of experience as a high school physics teacher, computer science teacher, and college mathematics teacher. He is a part of the New York State Master-Teacher Program, a network of more than 800 outstanding public-school teachers throughout the state who share a passion for STEM learning and for collaborating with colleagues to inspire the next generation of STEM leaders.