15.1 SocketsThis is NOT the latest copy of this book; click here for the latest version.
Surprising as this may come to some of you, your connection to the Internet is not handled by well-trained pixies with semaphore flags. Instead, things are much more detailed, involving protocols, ports, and sockets - these form the core of your connection to the Internet.
While it is out of the remit of this book to into too much detail about network infrastructure, you do at least need to know what protocols, ports, and sockets are. Protocols are like languages, defining how two computers can talk to each other, and there are hundreds of protocols to perform all varieties of operations - there is a protocol for file transfer (File Transfer Protocol, FTP), a protocol for transferring web pages (Hypertext Transfer Protocol, HTTP), a protocol for network management (Simple Network Management Protocol, SNMP), and many more.
Each protocol has a set of ports that it uses - these are theoretical openings in your computer's Internet connection where clients can connect to, are numbered 1 to 65535, of which the first 1023 are considered reserved to administrative users. By default your PC "listens" to no ports, meaning that it ignores all incoming connections. However, if you run a web server, it will open up port 80 - this is the port for HTTP, where your web server will listen for requests for web pages. The first 1023 ports are mostly used already, which means if you want to use a port for a new service you have written, it is best that you use a number above 1024.
Sockets are the literal connectors between a port and a program, sort of how a plug socket connects an appliance to the electricity grid in your house. Management of sockets in PHP comes in two flavours: easy and hard. As per usual, the easy option is not as flexible as the hard option, but it is much faster to get started with. We are going to be covering both here because both have their own uses.
|
Want to see this stuff in print? PHP in a Nutshell takes the core topics covered here, adds in thousands of edits from the editorial team and myself, and combines them to make an unbeatable reference for PHP programmers at all levels.
My latest book has hundreds more tips on how to use PHP, Apache, and MySQL, plus Perl, Python, shell scripts, performance tuning, and more!
|