自己动手写网络客户端

怎样才能写出自己的客户端程序?它和服务器之间的差别真的有那么大吗?为了体会两者的异同,下面就来写一个HTTP协议的网络客户端。

HTTP协议很像你之前写过的互联网knock-knock协议。协议是一段结构化对话,网络客户端和服务器必须谈得来才行。打开telnet,看看人家是怎么下载这个网页的:http://en.wikipedia.org/wiki/O'Reilly_Media

自己动手写网络客户端 - 图1

当程序连上网络服务器后,至少需要发送三样东西:自己动手写网络客户端 - 图2

  • GET命令
  1. GET /wiki/O'Reilly_Media http/1.1
  • 主机名

主机:en.wikipedia.org

  • 空行

但你必须先连上服务器,然后才能向服务器发送数据。那怎么连接呢?