登录/注册

如何在Python中使用socket

在Python中使用socket库创建网络通信。需先导入socket模块,然后创建套接字对象,通过bind()绑定地址和端口,listen()监听连接,accept()接受连接,使用send()和recv()发送和接收数据,最后关闭连接。

更多

在 Python 中使用 socket 模块可以实现网络通信,以下是基本的使用步骤和示例:


1. 基本流程(TCP 示例)

服务端

import socket

# 1. 创建 socket 对象(IPv4, TCP)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 绑定 IP 和端口
server_address = ('localhost', 12345)
server_socket.bind(server_address)

# 3. 开始监听连接
server_socket.listen(1)
print("等待客户端连接...")

# 4. 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"已连接来自 {client_address} 的客户端")

# 5. 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"收到数据:{data}")

# 6. 发送响应
response = "已收到消息!"
client_socket.sendall(response.encode('utf-8'))

# 7. 关闭连接
client_socket.close()
server_socket.close()

客户端

import socket

# 1. 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 连接到服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)

# 3. 发送数据
message = "Hello, Server!"
client_socket.sendall(message.encode('utf-8'))

# 4. 接收响应
response = client_socket.recv(1024).decode('utf-8')
print(f"服务器响应:{response}")

# 5. 关闭连接
client_socket.close()

2. UDP 示例

UDP 是无连接的协议,使用 SOCK_DGRAM

# 服务端(UDP)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('localhost', 12345))
data, client_address = server_socket.recvfrom(1024)
server_socket.sendto(b"UDP响应", client_address)

# 客户端(UDP)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.sendto(b"Hello UDP", ('localhost', 12345))
response, _ = client_socket.recvfrom(1024)

3. 注意事项

  1. 字节编码:Python 3 中网络通信需使用字节(bytes),发送时用 encode(),接收时用 decode()
  2. 异常处理:建议用 try...except 捕获 socket.error,避免程序崩溃。
  3. 端口占用:若提示端口被占用,可更换端口号或等待释放。
  4. 多客户端:服务端处理多个客户端时,需使用多线程/异步模型(如 threadingasyncio)。

4. 核心方法总结

通过以上示例和说明,你可以快速上手 Python 的 socket 编程!

何在Python中使socket

和UDP。 2. 创建Socket 在Python中,我们使用 socket 模块来创建

2024-11-01 16:10:32

何在测试中使用ChatGPT

Dimitar Panayotov 在 2023 年 QA Challenge Accepted 大会 上分享了他如何在测试中使用 ChatGPT。

2024-02-20 13:57:01

何在Linux中使用htop命令

本文介绍如何在 Linux 中使用 htop 命令。

2023-12-04 14:45:28

何在Arduino中使用微型伺服

电子发烧友网站提供《如何在Arduino中使用微型伺服.zip》资料免费下载

资料下载 李猛 2022-11-28 09:50:24

何在Arduino中使用Modbus

电子发烧友网站提供《如何在Arduino中使用Modbus.zip》资料免费下载

资料下载 王飞云 2022-11-22 11:21:30

何在Arduino中使用LDR

电子发烧友网站提供《如何在Arduino中使用LDR.zip》资料免费下载

资料下载 刘艳 2022-10-31 09:50:41

为BM1397制作Socket以在矿工中使

电子发烧友网站提供《为BM1397制作Socket以在矿工中使用.zip》资料免费下载

资料下载 李涛 2022-07-07 15:12:42

何在Linux环境下实现Python环境的搭建

本文档的主要内容详细介绍的是如何在Linux环境下实现Python环境的搭建。

资料下载 佚名 2020-08-24 12:12:00

SE5如何在Python中使用SAIL?

SE5已经预装在/system/lib下,只需要设置好环境变量,然后就可以在python中使用SAIL了: # SE5设置环境变量export PATH=$PATH:/system

2023-09-18 06:22:56

何在Python中使用MQTT

本文主要介绍如何在 Python 项目中使用 paho-mqtt 客户端库 ,实现客户端与 MQTT 服务器的连接、订阅、取消订阅、收发消息等功

2022-12-22 10:41:54

何在python代码中使用HTTP代理IP

如何再python代码中使用HTTP代理IP。

2022-09-13 09:25:52

何在PHP代码中使用HTTP代理IP

如何在PHP代码中使用HTTP代理IP。

2022-08-04 16:08:51

何在python代码中使用HTTP代理IP

如何在python代码中使用HTTP代理IP。

2022-08-04 15:46:27

Python学习之网络编程Socket分享

Python学习之网络编程Socket

2021-07-02 08:18:42

何在Python中使用Selenium

:Elem.send_keys用于在插入值后按Enter  · 代码行13:关闭  输出值  用户名“ guru99”的值和密码输入。  上述就是关于如何在Python

2020-09-08 18:17:32
7天热门专题 换一换
相关标签