1. 使用socket模块,实现服务器和客户端进行数据交互(聊天室功能)
时间: 2024-09-20 13:08:05 浏览: 54
在Python中,我们可以使用`socket`模块来构建一个基本的服务器-客户端模型,实现聊天室的功能。以下是简单的步骤:
**服务器端(Server)**:
1. 创建一个`socket`对象,指定通信协议(通常是TCP)。
2. `bind()`方法绑定服务器地址和端口。
3. `listen()`让服务器开始监听连接请求。
4. 使用`accept()`接收客户端连接,返回一个新的套接字对。
5. 对每个新连接的客户端,创建一个线程或者子进程来处理单独的通信。
**客户端(Client)**:
1. 创建一个`socket`对象,同样指定TCP协议。
2. 连接到服务器的地址和端口。
3. 发送和接收数据,通常采用循环来持续读取输入并发送到服务器。
下面是一个简单的示例代码结构:
```python
import socket
# 服务器部分
def server():
host = 'localhost'
port = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen()
while True:
client, addr = s.accept()
print(f"Connected by {addr}")
client.send("Welcome to the chat room!")
# 处理客户端消息...
client.close()
# 客户端部分
def client(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
# 发送消息...
data = s.recv(1024) # 接收服务器响应
print(data.decode())
s.close()
if __name__ == "__main__":
server_thread = threading.Thread(target=server)
client_thread = threading.Thread(target=client, args=("localhost", 12345))
server_thread.start()
client_thread.start()
```
阅读全文