第16章 网络编程(1)

16.1 引言

最常用的软件服务器是Web服务器。一台机器里放一些网页或web应用程序,然后启动服务。这样的服务器的任务就是接受客户端的请求,把网页发给客户端(如用户计算机上的浏览器),然后等待下一个客户端请求。

16.2 套接字:通信端点

16.2.1 什么是套接字

套接字是一种具有之前所说的“通信端点”概念的计算机网络数据结构。

16.2.2 套接字地址:主机与端口

如果把套接字比作电话的插口——即通信的最底层结构,那主机与端口就像区号与电话号码的一对组合。

合法的端口号范围为0~65535.其中,小于1024的端口号为系统保留端口。

16.2.3 面向连接与无连接

1. 面向连接

无论你使用哪一种地址家族,套接字的类型只有两种。一种是面向连接的套接字,即在通信之前一定要建立一条连接。面向连接的通信方式提供了顺序的、可靠的、不会重复的数据传输,而且也不会被加上数据边界。每一个要发送的信息,可能被拆分为多份,每一份会不多不少地正确地到达目的地。然后被重新按顺序拼接起来,传给正在等待的应用程序。

实现这种连接的主要协议就是传输控制协议(即TCP)。要创建TCP套接字就得在创建的时候指定套接字类型为SOCK_STREAM。TCP套接字采用SOCK_STREAM这个名字,表达了它作为流套接字的特点。由于这些套接字使用网际协议(IP)来查找网络中的主机,所以这样形成的整个系统,一般会由这两个协议(TCP和IP)名的组合来描述,即TCP/IP。

2. 无连接

与虚电路完全相反的是数据报型的无连接套接字。这意味着,无需建立连接就可以进行通讯。但这时,数据到达的顺序、可靠性及不重复性就无法保证了。数据报会保留数据边界,这就表示,数据是整个发送的,不会像面向连接的协议这样被先拆分成小块。

实现这种连接的主要协议就是用户数据表协议(即UDP)。要创建UDP套接字就得在创建的时候指定套接字类型为SOCK_DGRAM。由于这些套接字使用网际协议来查找网络中的主机,这样形成的整个系统,一般会由两个协议(UDP和IP)名的组合来描述,即UDP/IP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值