Python - Socket

Python | ShareTechnote

Python - 套接字

Python套接字编程是使用Python内置的套接字模块创建网络应用程序的方法。套接字模块提供了创建、管理和使用套接字的方法,这些是低级网络通信端点。使用套接字,您可以创建通过各种网络协议(如TCP(传输控制协议)和UDP(用户数据报协议))发送和接收数据的应用程序。

以下是Python套接字编程概念的详细解释:

套接字:套接字是用于在网络上发送和接收数据的网络端点。在Python中,您使用socket.socket()函数创建套接字,该函数返回一个套接字对象。创建套接字时,需要指定地址族(例如,socket.AF_INET表示IPv4)和套接字类型(例如,socket.SOCK_STREAM表示TCP或socket.SOCK_DGRAM表示UDP)。

绑定:绑定是指将套接字与本地计算机上的特定IP地址和端口号关联的过程。这是通过套接字对象的bind()方法完成的,该方法接受一个包含IP地址和端口号的元组作为参数。对于服务器套接字,绑定是必需的,因为它们需要在特定的地址和端口上监听传入的连接。

监听:对于使用TCP的服务器套接字,您需要在绑定后开始监听传入的连接。这是通过套接字对象的listen()方法完成的。该方法接受一个整数参数,该参数指定服务器可以等待的最大排队连接数。

接受:在服务器套接字开始监听后,可以使用accept()方法接受传入的连接。此方法阻塞,直到收到连接为止,并在建立连接时返回一个新的套接字对象和客户端的地址。新的套接字对象用于与已连接的客户端进行通信,而原始服务器套接字继续监听新连接。

连接:对于客户端套接字,您需要使用套接字对象的connect()方法发起到服务器的连接。此方法接受一个包含服务器的IP地址和端口号的元组作为参数。一旦连接建立,客户端套接字就可以使用相同的套接字对象发送和接收数据。

发送和接收:要通过套接字发送数据,您可以使用TCP套接字的send()或sendall()方法,以及UDP套接字的sendto()方法。通过套接字发送的数据应以字节格式。要接收数据,您可以使用TCP套接字的recv()方法,以及UDP套接字的recvfrom()方法。这些方法以字节格式返回接收到的数据,可以使用decode()方法将其转换为所需的数据类型(如字符串)。

关闭:在通信完成后,使用套接字对象的close()方法关闭套接字是至关重要的。这会释放与套接字关联的资源,并允许操作系统重用底层网络连接。

注意1:本页面中的所有示例均使用Python 3.x编写。如果您使用Python 2.x,则可能无法正常工作。

注意2:除非特别提及,否则本页面中的所有示例假定为在Windows 7上编写/运行。如果您在其他操作系统上运行,可能需要稍微修改一下语法。

< Sender >

 

s = socket.socket(socket.AF_INET, socket.SOCK_RAW,protocol_number)

....

s.sendto(UserData, (dstination_IP, 0))

 

 

< Reciever >

 

s = socket.socket(socket.AF_INET, socket.SOCK_RAW,protocol_number)

s.bind((IP_Reciever,0))

....

recvBytes = s.recv(NumberOfBytes)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值