http://www.iteye.com/topic/492649
Python提供流套接字(tcp)和数据报套接字(udp)。urlparse模块提供了用于解析url的函数,以及用于url处理的函数。
1. 服务器端
要在Python中建立具有TCP和流套接字的简单服务器,需要使用socket模块。利用该模块包含的函数和类定义,可生成通过网络通信的程序。建立这个连接需要6个步骤:
a). 第一步是创建socket对象。调用socket构造函数。如:socket = socket.socket(family,
type)
family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上
的进程间通信。type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字)。
b).
第二步是将socket绑定到指定地址。这是通过socket对象的bind方法来实现的:socket.bind(address)
由AF_INET所创建的套接字,address地址必须是一个双元素元组,格式是(host,port)。host代表主机,port代表端口号。如果
端口号正在使用、主机名不正确或端口已被保留,bind方法将引发socket.error异常。
c). 第三步是使用socket套接字的listen方法接收连接请求。socket.listen(backlog) backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。
d). 第四步是服务器套接字通过socket的accept方法等待客户请求一个连接。connection, address =
socket.accept()
调用accept方法时,socket会进入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素
的元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素
address是客户的Internet地址。
e).
第五步是处理阶段,服务器和客户端通过send和recv方法通信(传输数据)。服务器调用send,并采用字符串形式向客户发送信息。send方法返回
已发送的字符个数。服务器使用recv方法从客户接收信息。调用recv
时,服务器必须指定一个整数,它对应于可通过本次方法调用来接收的最大数据量。recv方法在接收数据时会进入“blocked”状态,最后返回一个字符
串,用它表示收到的数据。如果发送的数据量超过了recv所允许的,数据会被截短。多余的数据将缓冲于接收端。以后调用recv时,多余的数据会从缓冲区
删除(以及自上次调用recv以来,客户可能发送的其它任何数据)。
f). 第六步,传输结束,服务器调用socket的close方法关闭连接。
2. 客户端
在Python中建立一个简单客户端需要4个步骤:
a). 第一步是创建一个socket以连接服务器:socket = socket.socket(family, type)
b).
第二步是使用socket的connect方法连接服务器。对于AF_INET家族,连接格式如下:socket.connect(host,
port)
host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。如连接成功,客户就可通过套接字与服务器通信,如果连接失败,会引发
socket.error异常。
c). 第三步是处理阶段,客户和服务器将通过send方法和recv方法通信。
d). 第四步,传输结束,客户通过调用socket的close方法关闭连接。
分享到:
相关推荐
### Python网络编程知识点详解 #### 一、简介 随着互联网技术的发展,“网络编程”已成为软件开发领域中的一个热点话题。目前市场上的应用软件中有超过一半是面向网络的应用,如数据库服务器、游戏、Java Servlets...
- TCP服务器编程步骤一般包括创建套接字、绑定IP地址和端口号、监听连接、接受连接和通信。TCP客户端则通常涉及到创建套接字、连接服务器、通信和关闭连接。 - 示例代码中会展示如何使用Python内置的socket模块来...
- **Socket编程步骤**: - 创建Socket:`import socket; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)` - 绑定端口:`s.bind(('localhost', 9999))` - 监听连接:`s.listen(5)` - 接受连接:`conn, ...
#### 一、Python编程简介 **标题:** Python少儿编程课件PPTX **描述:** 本课程旨在通过简单易懂的方式帮助孩子们掌握Python编程的基础知识。 ##### 1.1 Python语言概览 - **定义:** Python是一种高级编程语言...
7. 部署与分享:最后,了解如何部署Python脚本为ArcGIS工具箱工具,以便在ArcGIS Desktop或Pro中供他人使用,或者将脚本封装成Web服务进行分布式计算,都是提升工作效率的关键步骤。 综上所述,面向ArcGIS的Python...
"Python核心编程"是学习Python编程的基础,它涵盖了Python语言的各个方面,旨在帮助初学者掌握Python的基本概念和核心技能,同时也为有经验的开发者提供深入理解Python机制的机会。 在Python核心编程中,首先会介绍...
1. Python基础:首先,你需要熟悉Python编程语言的基础,包括变量、数据类型、控制结构、函数、模块等。Python的简洁语法使得它成为初学者入门的首选语言。 2. Python IDE(集成开发环境):在Windows上,常见的...
Python网络编程是构建互联网应用程序的关键技术,它允许我们创建服务器、客户端、进行数据传输和处理网络请求。Python的网络编程库如socket、asyncio、requests等提供了丰富的功能,使得开发者可以轻松地实现网络...
本书《Python网络编程基础》旨在帮助初学者掌握Python进行网络通信的基本技能,通过阅读本书和配套的源码,读者可以深入理解网络编程的核心概念。 首先,让我们探讨Python在网络编程中的角色。Python以其简洁明了的...
对于想要深入了解Python编程细节和最佳实践的开发者来说,《Python核心编程_第2版》无疑是一本非常有价值的参考书。 ### 二、书籍内容概览 #### 1. Python基础 - 数据类型:包括数字、字符串、列表、元组、字典等...
### Python网络编程基础(第二版) 本书《Python网络编程基础》第二版由Brandon Rhodes与John Goerzen共同编著,是一本全面介绍如何利用Python语言进行网络应用开发的专业书籍。该书不仅适合初学者入门,同时也为有...
Python以其简洁的语法和丰富的库支持,成为网络编程领域中的热门选择,比如使用socket、twisted和asyncio等模块。 1. Python网络编程基础 Python网络编程的核心是socket模块,它提供了低级别的网络通信接口。在...
Python安全编程是一门利用Python语言进行信息安全研究的编程课程,它广泛应用于端口扫描、漏洞利用、网络嗅探、数据收集等方面。以下是从提供的文件信息中提取的知识点。 1. 端口扫描:端口扫描是指使用特定的软件...
### Python网络编程常用代码段详解 #### 一、引言 Python作为一种强大的脚本语言,在网络编程领域有着广泛的应用。本文将围绕“Python网络编程常用代码段”这一主题,详细介绍几种常用的网络编程代码示例,包括TCP...
《Python网络编程(第3版)》是一本深入讲解Python在网络编程领域的专著,适合初学者及有一定基础的开发者学习。这本书涵盖了网络编程的基础概念、协议、套接字编程、多线程与并发处理、网络服务开发等多个方面的...
Python网络编程是利用Python语言进行数据通信和处理的应用程序开发领域。Python内置的强大网络库提供了丰富的接口,可以创建和管理网络连接和数据交换。网络编程的核心思想是使两台计算机之间能够通过网络进行数据...
Python 作为一种功能强大的脚本语言,提供了丰富的库支持来实现网络编程,其中最常用的是 `socket` 模块。本篇文章将深入探讨网络编程的基本概念、原理以及如何使用 Python 的 `socket` 模块来实现网络通信。 首先...
【Python机器学习项目开发实战】深入探讨神经网络和深度学习技术,这门课程旨在帮助学习者掌握使用Python进行机器学习项目开发,特别是聚焦在深度神经网络的构建与应用上。神经网络是模仿人脑神经元结构的一种算法...
**Python网络编程基础** 在计算机世界中,网络编程是实现不同设备间通信的关键技术。Python作为一门强大且易学的编程语言,提供了丰富的库和工具,使得网络编程变得简单而高效。本篇将深入探讨Python在网络编程领域...