socket聊天python
时间: 2023-10-11 19:07:14 浏览: 37
实现一个简单的socket聊天室,可以分为客户端和服务端两部分。
服务端代码:
```python
import socket
HOST = '127.0.0.1' # 设置主机地址为本机地址
PORT = 6666 # 设置端口号为6666
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象
s.bind((HOST, PORT)) # 绑定主机地址和端口号
s.listen(1) # 监听连接请求
print(f"Server is running on port {PORT}...")
while True:
conn, addr = s.accept() # 接收连接请求
print(f"Connected by {addr}")
while True:
data = conn.recv(1024) # 接收客户端发送的消息
if not data:
break # 如果没有数据则跳出循环
conn.sendall(data) # 向客户端发送消息
conn.close() # 关闭连接
```
客户端代码:
```python
import socket
HOST = '127.0.0.1' # 设置主机地址为本机地址
PORT = 6666 # 设置端口号为6666
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象
s.connect((HOST, PORT)) # 连接服务端
while True:
message = input(">> ") # 输入消息
s.sendall(message.encode()) # 向服务端发送消息
data = s.recv(1024) # 接收服务端返回的消息
print(f"Received: {data.decode()}")
s.close() # 关闭连接
```
客户端和服务端代码都很简单,其中服务端使用 `bind()` 方法绑定主机地址和端口号,并使用 `listen()` 方法监听连接请求;客户端使用 `connect()` 方法连接服务端,并使用 `sendall()` 方法向服务端发送消息,使用 `recv()` 方法接收服务端返回的消息。
运行服务端代码后,可以看到服务端开始监听端口号为6666的连接请求;运行客户端代码后,可以输入消息并发送给服务端,服务端会返回相同的消息。