首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 高级编程之网络编程 Socket(六)

一、概述

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)全双工(全双向通信)示例

服务端代码:

客户端代码:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230430A000L600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券