技术文摘
Python 网络编程:十则实用的网络通信脚本
Python 网络编程:十则实用的网络通信脚本
在当今数字化的时代,网络通信变得至关重要。Python 作为一种强大且灵活的编程语言,为网络编程提供了丰富的工具和库。以下为您介绍十则实用的 Python 网络通信脚本。
1. 简单的 HTTP 请求脚本
使用 requests 库,可以轻松发送 HTTP 请求并获取响应。
import requests
response = requests.get('https://www.example.com')
print(response.text)
2. 端口扫描脚本
通过遍历端口范围,检查端口是否开放。
import socket
def scan_port(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
result = s.connect_ex((host, port))
if result == 0:
print(f'Port {port} is open')
s.close()
for port in range(1, 1024):
scan_port('127.0.0.1', port)
3. TCP 服务器脚本
实现一个简单的 TCP 服务器,接收客户端连接和数据。
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 5000))
server_socket.listen(1)
client_socket, addr = server_socket.accept()
data = client_socket.recv(1024)
print(f'Received: {data.decode()}')
client_socket.close()
server_socket.close()
4. UDP 客户端脚本
发送和接收 UDP 数据包。
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('127.0.0.1', 5001)
message = b'Hello, UDP!'
client_socket.sendto(message, server_address)
data, addr = client_socket.recvfrom(1024)
print(f'Received: {data.decode()}')
client_socket.close()
5. 网络文件传输脚本
利用套接字实现文件在网络中的传输。
import socket, os
def send_file(file_path, host, port):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
file_size = os.path.getsize(file_path)
client_socket.send(str(file_size).encode())
with open(file_path, 'rb') as file:
while True:
data = file.read(1024)
if not data:
break
client_socket.send(data)
client_socket.close()
send_file('/path/to/file.txt', '127.0.0.1', 5002)
6. 邮件发送脚本
使用 smtplib 库发送电子邮件。
import smtplib
from email.mime.text import MIMEText
def send_email(subject, body, to_email):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = 'your_email@example.com'
msg['To'] = to_email
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login('your_email@example.com', 'your_password')
server.sendmail('your_email@example.com', to_email, msg.as_string())
server.quit()
send_email('Test Email', 'This is a test email.', 'recipient@example.com')
7. 网络爬虫脚本
抓取网页内容。
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.text, 'html.parser')
for link in soup.find_all('a'):
print(link.get('href'))
8. 远程控制脚本
通过网络实现对远程设备的简单控制。
import socket
def control_device(command, host, port):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
client_socket.send(command.encode())
response = client_socket.recv(1024).decode()
print(response)
client_socket.close()
control_device('start', '127.0.0.1', 5003)
9. 实时聊天脚本
基于套接字实现简单的实时聊天应用。
import socket, threading
def receive_messages(client_socket):
while True:
data = client_socket.recv(1024)
print(data.decode())
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 5004))
thread = threading.Thread(target=receive_messages, args=(client_socket,))
thread.start()
while True:
message = input('Enter message: ')
client_socket.send(message.encode())
10. 网络监控脚本
监测网络连接状态和性能。
import psutil
def monitor_network():
network_info = psutil.net_io_counters()
print(f'Bytes Sent: {network_info.bytes_sent}')
print(f'Bytes Received: {network_info.bytes_recv}')
monitor_network()
这些实用的 Python 网络通信脚本为您在网络编程领域提供了丰富的示例和起点,帮助您更深入地理解和应用网络通信技术。
TAGS: Python 网络编程 网络编程技巧 实用网络通信脚本 Python 通信技术
- 为何 Python 不支持 i++/i-- 操作
- 以 Vetur 为例谈源码阅读之道
- Python 连接 MySQL 数据库的方法
- 数据科学领域的顶级语言:Python 领先,SQL 随后
- 一文助你明晰 Iterator 接口的用法
- 性能大幅提升!(优化篇)
- 华为发布 AGC for Games 解决方案 全生命周期助力游戏开发者做好游戏
- Java 异步编程的多样方式
- 从 0 到 1 亿用户的架构设计全解析
- HarmonyOS 实战:单击事件的四种写法
- session、token、jwt 与 oauth2 之辨析
- 5 个 Cypress E2E 测试中应避免的错误
- 5 分钟 10 行代码,Python 助你化身电脑文件清道夫
- Go 读取和写入 Excel (XLSX) 文件的方法
- 从浏览器视角解析 HTTP 缓存