python端口发送数据
时间: 2025-08-20 17:37:19 浏览: 4
Python 端口发送数据通常涉及网络编程,最常用的是通过 TCP 或 UDP 协议。这里我们简单介绍如何利用 Python 的 `socket` 库来进行基本的数据传输。
### 使用 Socket 发送数据
#### 创建TCP客户端:
```python
import socket
# 初始化Socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端,假设目标IP为 "192.168.0.1" 和端口号为 6789
server_address = ('192.168.0.1', 6789)
client_socket.connect(server_address)
try:
# 准备要发送的信息
message = '你好,服务器'
print(f'正在向 {server_address} 发送信息...')
client_socket.sendall(message.encode('utf-8'))
# 接收响应(如果有)
response = client_socket.recv(4096).decode('utf-8')
print(f'收到回复: "{response}"')
finally:
print('关闭连接.')
client_socket.close()
```
此示例展示了怎样建立一个简单的TCP客户端程序,并且将一条消息发送给指定的服务端地址及端口上;同时也可以接收来自对方的反馈并打印出来。
如果你想要创建监听请求的服务端,则可以参考如下代码片段:
```python
def start_server():
import socket
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定到本地所有可用接口上的特定端口
local_port = 6789
server_sock.bind(('localhost', local_port))
# 开始监听传入连接的最大队列长度设为5
server_sock.listen(5)
print("等待连接...")
while True:
connection, addr_info = server_sock.accept() # 阻塞直到有新的连接到达
try:
data_received = connection.recv(1024) # 尝试读取最多1KB的数据
if not data_received: break
print(f'从{addr_info[0]}:{addr_info[1]} 收到了"{data_received.decode()}". ')
reply_msg = f'{data_received.decode()}, 回复成功!'
connection.send(reply_msg.encode())
finally:
connection.shutdown(socket.SHUT_WR)
connection.close()
if __name__ == '__main__':
start_server()
```
以上两个例子分别代表了最基本的TCP通信过程中的客户方与供应方角色之间的交互模式之一种形式——即同步阻塞I/O模型下的操作流程演示。
对于更复杂的场景如非阻塞IO、异步IO等高级特性,在实际项目开发过程中会涉及到更多细节和技术选型考量因素,比如使用 Twisted、asyncio 框架等等。
阅读全文
相关推荐


















