欢迎访问宙启技术站
智能推送

Python中网络通信函数的实例介绍

发布时间:2023-06-21 05:08:07

Python是一种通用型编程语言,它最初是由 Guido van Rossum 在 1991 年开发的。Python 是一种面向对象编程(Object Oriented Programming,OOP)的语言,可以运行在多个平台上。Python 内置了许多模块,其中就包括网络通信模块。网络通信是指计算机之间通过网络进行信息交换的过程。在Python语言中,我们可以通过网络通信模块实现不同设备之间的通信。本文将会介绍Python中网络通信函数的实例。

1. socket模块

socket模块是Python中最常用的网络通信模块。它提供了一个标准的套接字接口,可以在客户端和服务器之间发送和接收数据。以下是socket模块的一些实例。

1)创建一个服务端套接字

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind(('127.0.0.1', 8888)) 
s.listen(5) 
conn, addr = s.accept()  
print('Connected by', addr)
while True:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()

此代码段是一个简单的服务端套接字程序,它监听本地IP地址为127.0.0.1、端口号为8888的TCP连接。程序会一直循环监听客户端的请求,当有客户端连接时输出连接的IP地址,然后向客户端发送和接收数据。如果客户端断开连接,程序将关闭套接字并退出。

2)创建一个客户端套接字

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect(('127.0.0.1', 8888)) 
s.sendall(b'Hello, server') 
data = s.recv(1024) 
s.close()
print('Received', repr(data))

此代码段是一个简单的客户端套接字程序,它向本地IP地址为127.0.0.1、端口号为8888的TCP服务器发送请求,并发送一条消息“Hello, server”。服务器接收到数据后,向客户端发送响应。客户端接收响应后关闭连接,并输出响应消息。

2. http.client模块

http.client模块可以用来实现HTTP客户端功能,通过使用标准HTTP协议来发送请求和接收响应。以下是http.client模块的一些实例。

1)发送GET请求

import http.client
conn = http.client.HTTPSConnection("www.google.com")
conn.request("GET", "/")
response = conn.getresponse()
print(response.read())

此代码段是一个使用http.client模块发送GET请求的程序。它连接到www.google.com,并发送一个GET请求,获取该网站首页的HTML内容。服务器响应后,程序输出服务器返回的内容。

2)发送POST请求

import http.client, urllib.parse
params = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = http.client.HTTPSConnection("www.python.org")
conn.request("POST", "/cgi-bin/query", params, headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()
print(data)
conn.close()

此代码段是一个使用http.client模块发送POST请求的程序。它连接到www.python.org,并发送一个POST请求,将请求参数编码为标准表单数据并附加到请求中。服务器响应后,程序输出服务器返回的内容。

3. urllib模块

urllib模块是Python内置的HTTP客户端库,它包含了一系列模块和函数,可以用来处理URL、发送HTTP请求和处理HTTP响应。以下是urllib模块的一些实例。

1)获取远程文件内容

import urllib.request
response = urllib.request.urlopen('https://www.python.org')
html = response.read()
print(html)

此代码段是一个使用urllib模块获取远程文件内容的程序。它连接到www.python.org,并发送一个GET请求,获取该网站首页的HTML内容。服务器响应后,程序输出服务器返回的内容。

2)发送POST请求

import urllib.request, urllib.parse
url = 'https://www.python.org/cgi-bin/query'
params = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
req = urllib.request.Request(url, params.encode('ascii'), headers)
with urllib.request.urlopen(req) as response:
    the_page = response.read()
print(the_page)

此代码段是一个使用urllib模块发送POST请求的程序。它连接到www.python.org,并发送一个POST请求,将请求参数编码为标准表单数据并附加到请求中。服务器响应后,程序输出服务器返回的内容。

总结

Python语言的网络通信模块提供了非常方便的方法实现网络通信,在实际的开发中,我们可以通过这些模块和函数实现跨设备之间的数据传输。以上是Python中网络通信函数的一些实例介绍,希望可以对读者有所帮助。