pythonsocket写客户端和服务器通讯
时间: 2023-10-07 19:04:12 浏览: 96
Socket 通讯客户端和服务器端
对于使用 Python 编写客户端和服务器之间的通信,你可以使用内置的 `socket` 模块。以下是一个简单的示例,展示了如何创建一个基本的客户端和服务器。
服务器端代码(server.py):
```python
import socket
def main():
# 创建一个TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 监听连接
server_socket.listen(1)
print('服务器已启动,等待客户端连接...')
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print('新的连接已建立:', client_address)
try:
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024)
if data:
print(f'接收到来自 {client_address} 的数据:', data.decode())
# 发送响应数据给客户端
response = '已收到你的消息'
client_socket.sendall(response.encode())
else:
print(f'{client_address} 断开连接')
break
finally:
# 关闭客户端连接
client_socket.close()
if __name__ == '__main__':
main()
```
客户端代码(client.py):
```python
import socket
def main():
# 创建一个TCP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务器地址和端口
server_address = ('localhost', 8888)
try:
# 连接服务器
client_socket.connect(server_address)
while True:
# 发送数据给服务器
message = input('请输入要发送的消息(输入 q 退出): ')
client_socket.sendall(message.encode())
if message == 'q':
print('退出程序')
break
# 接收服务器的响应
response = client_socket.recv(1024)
print('收到服务器的响应:', response.decode())
finally:
# 关闭客户端连接
client_socket.close()
if __name__ == '__main__':
main()
```
在运行这两个文件之前,请确保在运行 `client.py` 之前先运行 `server.py`。这将启动一个基本的客户端和服务器通信示例。你可以根据需要进行修改和扩展。
阅读全文