`
lz1130
  • 浏览: 406336 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

转:python的socket编程

阅读更多
python socket编程简介:

python 编写server的步骤:
1、第一步是创建socket对象。调用socket构造函数。如:
socket = socket.socket( family, type )
family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信。
type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字)。
2、第二步是将socket绑定到指定地址。这是通过socket对象的bind方法来实现的:
socket.bind( address )
由AF_INET所创建的套接字,address地址必须是一个双元素元组,格式是(host,port)。host代表主机,port代表端口号。如果端口号正在使用、主机名不正确或端口已被保留,bind方法将引发socket.error异常。
3、第三步是使用socket套接字的listen方法接收连接请求。
socket.listen( backlog )
backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。
4、第四步是服务器套接字通过socket的accept方法等待客户请求一个连接。
connection, address = socket.accept()
调 用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的 元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素 address是客户的Internet地址。
5、第五步是处理阶段,服务器和客户端通过send和recv方法通信(传输 数据)。服务器调用send,并采用字符串形式向客户发送信息。send方法返回已发送的字符个数。服务器使用recv方法从客户接收信息。调用recv 时,服务器必须指定一个整数,它对应于可通过本次方法调用来接收的最大数据量。recv方法在接收数据时会进入“blocked”状态,最后返回一个字符 串,用它表示收到的数据。如果发送的数据量超过了recv所允许的,数据会被截短。多余的数据将缓冲于接收端。以后调用recv时,多余的数据会从缓冲区 删除(以及自上次调用recv以来,客户可能发送的其它任何数据)。
6、传输结束,服务器调用socket的close方法关闭连接。

python编写client的步骤:
1、创建一个socket以连接服务器:socket = socket.socket( family, type )
2、使用socket的connect方法连接服务器。对于AF_INET家族,连接格式如下:
socket.connect( (host,port) )
host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。如连接成功,客户就可通过套接字与服务器通信,如果连接失败,会引发socket.error异常。
4、处理阶段,客户和服务器将通过send方法和recv方法通信。
5、传输结束,客户通过调用socket的close方法关闭连接。

例子:
server.py

import socket
s=socket.socket()
s.bind(('0.0.0.0',5200)) #ip地址和端口号
s.listen(5)
cs,address = s.accept()
print 'got connected from',address
cs.send('byebye')
ra=cs.recv(512)
print ra
cs.close()

client.py

import socket
s=socket.socket()
s.connect(('127.0.0.1',5200)) #与服务器程序ip地址和端口号相同
data=s.recv(512)
s.send('hihi')
s.close()
print 'the data received is',data

简单的python_socket实例
0
0
分享到:
评论

相关推荐

    python socket 网络编程

    在"python socket 网络编程"这个主题中,我们将深入探讨如何利用socket进行文件传输、命令行执行等核心功能。 一、Python Socket基础 Python中的socket模块源于C语言的socket接口,它提供了TCP/IP协议族的网络通信...

    python的socket编程

    ### Python的Socket编程 在计算机网络中,socket(套接字)是一种用于进程间通信的机制,它允许不同计算机上的程序通过网络进行双向通信。本文将深入探讨如何使用Python进行socket编程,特别是创建一个简单的图形...

    python-socket-programming-tutorial:python socket编程教程

    为了开始我们的套接字世界之旅,我们将在 python 中进行 tcp socket 编程。 首先,让我们从创建一个套接字开始创建套接字要创建套接字,我们可以使用 python 的 。 现在让我们创建一个: # Code 1.pyimport sockets...

    python:socket传输大文件示例

    在Python编程中,Socket是网络通信的基本模块,用于实现不同计算机之间的数据传输。本文将深入讲解如何使用Python的Socket库来传输大文件。文件传输在许多应用中都是必不可少的,例如分布式系统、文件共享和备份等。...

    《Python核心编程_第2版》PDF版本下载.txt

    - 网络编程:包括TCP/IP协议的理解及Socket编程实践。 - 并发编程:多线程和多进程的应用场景及其实现方式。 #### 4. 最佳实践 - 代码规范:遵循PEP 8等指导原则写出可读性强且易于维护的代码。 - 测试驱动开发:...

    深入浅出:使用Python编程

    《深入浅出:使用Python编程》是一本专为Python初学者设计的教程,旨在帮助读者快速掌握这门强大且易学的编程语言。Python作为现代软件开发中的主流语言,广泛应用于数据分析、机器学习、Web开发等多个领域。这本书...

    python socket编程实例

    Python的socket编程是网络通信的基础,它允许不同的计算机之间相互通信。socket编程是构建客户端和服务器应用程序的核心技术之一。 标题中提到的“Python socket编程实例”意味着本文将通过实例来指导Python开发者...

    一个简单的Python Socket编程示例,包括一个简单的服务器和客户端

    一个简单的Python Socket编程示例,包括一个简单的服务器和客户端。 解释说明: 服务器端代码: 使用 socket.socket() 创建一个新的socket对象 server_socket,参数 socket.AF_INET 表示使用IPv4地址族,socket....

    AsyncSocket -Python异步Socket编程代码

    Python异步Socket编程代码,对想学习python socket的人有用

    Python网络编程(Linux)_网络编程_python_linux网络编程_

    Python的socket模块同样适用于客户端编程,可以创建连接,发送和接收数据。 7. **并发处理**:在网络编程中,经常需要同时处理多个连接。Python的线程和进程模块可以实现并发,而`asyncio`库提供了一种基于事件循环...

    Python 网络编程 python网络编程 socket

    Python 网络编程_python网络编程_socket Python 网络编程是指使用 Python 语言进行网络通信编程,包括 socket 编程、网络通信协议等方面的内容。下面是对 Python 网络编程的详细介绍: 1. 网络通信的概念 网络...

    基于python的socket实现单机五子棋到双人对战

    通过这个过程,我们将学习到Python中的socket编程基础、多线程处理以及如何设计一个简单的网络应用程序。 #### 技术栈与环境 - **Python版本**:推荐使用Python 3.x。 - **开发工具**:推荐使用PyCharm或VS Code等...

    Python socket 编程的例子.rar

    附件是一个简单的 Python socket 编程的例子,包括一个服务器端和一个客户端。 附件代码在实际使用中可能需要进行错误处理和异常管理的增强,以确保程序的健壮性。此外,服务器端代码中的 while True 循环会无限期...

    python socket编程实例(服务端及客户端)

    Python的socket库是进行网络通信的基础模块,它提供了低级别的、原始的套接字接口,...理解并熟练掌握socket编程是成为合格的网络程序员的基础。通过这个实例,你可以进一步探索网络编程的奥秘,不断拓展自己的技能树。

    使用socket编程模拟滑动窗口协议

    本项目通过socket编程实现了1bit滑动窗口协议,这将帮助我们深入理解该协议的工作原理。 1. **滑动窗口协议基础**: - 滑动窗口协议允许发送方在等待确认之前发送一定数量的数据,这个数量由窗口大小决定。 - ...

    Python核心编程第三版 资源_python_

    8. **网络编程**:Python的socket库支持网络通信,可以用来构建客户端和服务端应用程序,理解TCP/IP协议和HTTP协议在网络编程中的应用。 9. **Web开发**:Python的Django和Flask框架广泛用于Web开发,学习这些框架...

    python网络编程基础

    - **socket模块**: Python的socket模块提供了低级别的网络通信接口,可以创建套接字进行TCP或UDP通信。 - **TCP套接字编程**: 创建TCP套接字,实现客户端与服务器之间的连接,进行双向数据传输。 - **UDP套接字...

    02python核心编程阶段-python基础.rar

    - 网络编程:Python提供了socket模块,可以进行TCP/IP、UDP等网络通信。 - 数据分析:Pandas库用于数据处理和分析,NumPy提供高效的数值计算功能。 - Web开发:Django和Flask是两个流行的Python Web框架,可以...

Global site tag (gtag.js) - Google Analytics