一个程序怎样通过网络与另一个程序通信?本书的目标是:在C编程语言的环境下,开始让你理解这个问题的答案。长时间以来,C都是实现网络通信软件所选的语言。的确,称为套接字的API(applicationprogramminginterface,应用程序编程接口)最初就是用C开发的。
不过,在深入研究套接字的细节之前,值得从总体上简要探讨一下网络和协议,看看我们的代码将适合于应用在什么位置。我们在本书中的目标不是讲授网络和TCP/IP如何工作——有许多针对此目的的优秀教材可以阅读[1、3、10、15、17】,而是介绍一些基本的概念和术语。
计算机网络由通过通信信道互连的机器组成。我们把这些机器称为主机(host)和路由器(router)。主机是运行应用程序(比如Web浏览器、IM代理或文件共享程序)的计算机。主机上运行的应用程序是网络的真正“用户”。路由器也称为网关(gateway),这种机器的职责是把信息从一条通信信道中继或转发(forward)到另一条通信信道。它们可能会运行程序,但是通常不会运行应用程序。出于我们的目的,通信信道(communicationchannel)是把字节序列从一台主机传送到另一台主机的工具;它可能是有线(例如,以太网)、无线(例如,WiFi)或其他连接。
展开