python实现socket通信
时间: 2023-12-04 10:05:24 浏览: 41
以下是一个简单的Python Socket通信示例,实现了一个简单的客户端和服务器之间的消息传递:
服务器端代码:
```
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8888 # 服务器端口号
# 创建一个socket对象,AF_INET表示IPv4地址族,SOCK_STREAM表示TCP协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
s.bind((HOST, PORT))
# 开始监听连接请求
s.listen(1)
print('等待客户端连接...')
# 接受客户端连接请求,建立连接
conn, addr = s.accept()
print('客户端已连接:', addr)
while True:
# 接收客户端发送的消息
data = conn.recv(1024)
if not data:
# 如果没有接收到消息,则跳出循环
break
# 将接收到的消息打印出来
print('客户端发送的消息:', data.decode('utf-8'))
# 向客户端发送消息
conn.sendall('已收到消息'.encode('utf-8'))
# 关闭连接
conn.close()
```
客户端代码:
```
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8888 # 服务器端口号
# 创建一个socket对象,AF_INET表示IPv4地址族,SOCK_STREAM表示TCP协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 向服务器发送连接请求
s.connect((HOST, PORT))
while True:
# 输入要发送的消息
message = input('请输入要发送的消息:')
# 向服务器发送消息
s.sendall(message.encode('utf-8'))
# 接收服务器发送的消息
data = s.recv(1024)
# 将接收到的消息打印出来
print('服务器返回的消息:', data.decode('utf-8'))
# 关闭连接
s.close()
```
在两个命令行窗口中,先运行服务器端代码,再运行客户端代码。客户端可以输入要发送的消息,服务器会将接收到的消息打印出来,并向客户端发送“已收到消息”的回复。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)