技术文摘
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 通信技术
- Visual Studio Code使用Go泛型时类型约束自动删除原因
- Go Gin框架下校验路由参数为数值类型的方法
- Gin项目跨包引用内部函数的方法
- 公司无项目时新人的自我提升方法
- Python加载Librosa库后找不到output模块的解决办法
- 选择Go Huma框架开发API端点的原因
- 自学Go语言解决自定义包引入失败问题的方法
- Go语言解析XML数据中Excel Worksheet结构的方法
- 公司暂无项目,职场新人怎样实现自我提升
- PyQt5窗口崩溃原因探究:mouseMoveEvent函数为何失效
- Py 文件打包成 exe 运行报错 ModuleNotFoundError 的解决方法
- 探秘 SEPA 与跨境支付
- MySQL 中怎样在特定时间段内限制数据唯一性插入
- Python代码实现修改JSON文件字段及拷贝相关文件的方法
- Python GUI编程:用Grid布局实现简单计算器功能的方法