一、概述
Python 网络编程是指使用 Python 语言编写的网络应用程序。这种编程涉及到网络通信、套接字编程、协议解析等多种方面的知识。
在 Python 中,有许多内置库和第三方库可以用于网络编程,例如:
:它是 Python 的内置库,提供了一组简单的套接字 API,可以用于客户端/服务器编程。
:它是 Python 的内置库,提供了一组 API,可以用于发送 HTTP 请求和解析 HTTP 响应。
:它是 Python 的内置库,提供了一组 API,可以用于打开和读取 URL。
:它是一个第三方库,可以用于解析 HTML 和 XML 文档,方便爬虫编程。
:它是一个第三方库,提供了一个高级的爬虫框架,可以方便爬虫编程。
使用这些库,可以实现各种类型的网络应用程序,如 Web 应用程序、网络爬虫、网络服务器、客户端/服务器程序等。
二、Python socket 模块
Python Socket 编程是 Python 中用于实现客户端/服务器网络通信的套接字编程。它是 Python 网络编程的基础。
Python 提供了两个基本的 socket 模块。
第一个是 ,它提供了标准的 BSD Sockets API。
第二个是 , 它提供了服务器中心类,可以简化网络服务器的开发。
1)Socket 类型
套接字格式:
1、创建 TCP Socket
示例如下:
以上代码实现了创建一个 TCP socket,并绑定了本地主机名和端口号,监听端口。
2、创建 UDP Socket
示例如下:
以上代码实现了创建一个 UDP socket,并绑定了本地主机名和端口号。
2)Socket 函数
注意点:
TCP发送数据时,已建立好TCP连接,所以不需要指定地址。UDP是面向无连接的, 每次发送要指定是发给谁。
服务端与客户端不能直接发送列表,元组,字典。需要字符串化repr(data)。
1、服务端socket函数2、客户端socket函数3、公共socket函数
Python 中的 socket 库提供了一组简单的 API,可以用于创建套接字,连接到远程服务器,接收和发送数据等。下面是一个简单的 Python Socket 示例:
三、单工,半双工以及全双工通信方式的区别
单工,半双工和全双工是通讯技术中的术语,指的是在通讯过程中,两端设备的信息传输方式不同。
单工(单向通信):只有一端设备可以发送信息,另一端只能接收信息,两端不能同时发送和接收信息。
半双工(半双向通信):两端设备同时可以发送和接收信息,但不能同时发送。两端各自占有通讯频道,在不同的时间段内交替发送和接收信息。
全双工(全双向通信):两端设备同时可以发送和接收信息,并且可以同时发送。两端设备可以同时占有通讯频道,并且同时进行信息的传输。
不同的通讯方式适用于不同的场景,例如电话通话属于半双工通信,而网络数据传输通常属于全双工通信。在选择通讯技术时,需要根据具体应用场景,考虑通讯的实际需求,以选择最合适的通讯方式。
四、单工,半双工以及全双工Python示例
在 Python 中,我们可以使用 socket 模块来实现不同的通讯方式。
1)单工(单向通信)示例
服务端代码:
客户端代码:
2)半双工(半双向通信)示例
服务端代码:
客户端代码:
3)全双工(全双向通信)示例
服务端代码:
客户端代码:
领取专属 10元无门槛券
私享最新 技术干货