《Python核心编程》 第二章 网络编程 笔记

2018-6-12

2.2 客户端/服务器架构

包括硬件客户端/服务器架构(如:打印(打印机)服务器)和软件客户端/服务器架构(如:Web服务器,数据库服务器,窗体(window)服务器等)

窗体客户端通常被当做图形用户界面(GUI)

在服务器响应客户端请求之前,必须进行一系列的初步设置流程来为之后的工作做准备,首先是创建一个通信端点,它能够使服务器监听请求。一旦一个通信端点建立,监听服务器就可以进入无限循环中,等待客户端的连接并响应他们的请求。

2.3 套接字(socket):通信端点

面向连接的套接字

套接字是计算机网络数据结构,体现的是“通信端点”的概念,在任何通信开始之前,网络应用程序必须创建套接字。

传输控制协议(TCP)P是protocal的缩写。为了创建TCP套接字,必须使用SOCK_STREAM作为套接字类型。TCP套接字的名字SOCK_STREAM基于流套接字的其中一种表示。因为套接字(AF_INET)的网络版本使用因特网协议(IP)来搜索网络中的主机,所以整个系统通常结合着两种协议(TCP,IP)来进行

无连接的套接字

数据报类型的套接字,是一种无连接的套接字,意味着在通信开始之前不需要建立连接。数据传输过程中无法保证数据的顺序性,可靠性和重复性,就像信件和包裹或许并不能以发送顺序达到。

两者比较:由于面向连接的套接字所提供的保证,一次他们的设置以及对虚拟电路连接的维护需要大量的开销。然而数据报不需要这些开销,使得成本更加的低廉,因此,他们通常能够提供更好的性能并且可能适合一些类型的应用程序。

实现这种连接类型的主要协议是用户数据报协议(UDP)为了使用UDP套接字,必须使用SOCK_DGRAM作为套接字类型,因为这些套接字也是用因特网协议来寻找主机,所两种协议的组合名字被称为UDP/IP协议。

2.4 Python中的网络编程

使用socket模块中的socket函数可以创建套接字对象,另外,套接字有自己的方法集,可以实现基于套接字的网络通信。

2.4.1 socket()模块函数

创建套接字socket.socket(socket_family,socket_type,protocal = 0)

这一章由于要用到UNIX,对这一方面还很不熟悉。直接跳到第五章进行学习,后面时间充足的话在汇过来看关于网络编程的知识点。


猜你喜欢

转载自blog.csdn.net/qq_21210467/article/details/80664152