写一个可以发简单文字和图片的聊天程序
时间: 2023-05-14 16:06:38 浏览: 81
好的,我可以为您提供一个可以发简单文字和图片的聊天程序。您可以使用 Python 编写一个基于 Socket 的简单聊天程序,使用 Pillow 库来处理图片。以下是一个简单的示例代码:
```python
import socket
from PIL import Image
# 创建 Socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 12345
# 绑定端口号
s.bind((host, port))
# 等待客户端连接
s.listen(5)
while True:
# 建立客户端连接
client_socket, addr = s.accept()
# 接收客户端发送的消息
data = client_socket.recv(1024).decode()
# 判断消息类型
if data.startswith("text:"):
# 发送文本消息
message = data[5:]
print("Received message:", message)
client_socket.send("Message received".encode())
elif data.startswith("image:"):
# 发送图片消息
image_data = data[6:].encode()
image = Image.frombytes("RGB", (300, 300), image_data)
image.show()
client_socket.send("Image received".encode())
# 关闭连接
client_socket.close()
```
您可以使用 telnet 或者其它 Socket 客户端来连接这个聊天程序,并发送文本或者图片消息。例如,您可以使用 telnet 来发送一个文本消息:
```
$ telnet localhost 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
text:Hello, world!
Message received
Connection closed by foreign host.
```
或者发送一个图片消息:
```
$ telnet localhost 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
image:����JFIFHH��C
...
Image received
Connection closed by foreign host.
```
注意,这个示例代码只是一个简单的示例,实际上您需要更多的代码来处理异常情况、多个客户端连接等问题。