自己动手写网络客户端
怎样才能写出自己的客户端程序?它和服务器之间的差别真的有那么大吗?为了体会两者的异同,下面就来写一个HTTP协议的网络客户端。
HTTP协议很像你之前写过的互联网knock-knock协议。协议是一段结构化对话,网络客户端和服务器必须谈得来才行。打开telnet,看看人家是怎么下载这个网页的:http://en.wikipedia.org/wiki/O'Reilly_Media。
当程序连上网络服务器后,至少需要发送三样东西:
- GET命令
GET /wiki/O'Reilly_Media http/1.1
- 主机名
主机:en.wikipedia.org
- 空行
但你必须先连上服务器,然后才能向服务器发送数据。那怎么连接呢?