一.服务端
import socket
import os
server = socket.socket()
server.bind(('10.7.181.111', 8088))
server.listen(512)
# 让服务器保持一致运行的状态
while True:
print('开始监听')
connect, address = server.accept()
print('接收到请求')
print(connect, address)
# while True:
recv_data = connect.recv(1024)
# print('接收:', recv_data.decode(encoding='utf-8'))
print('接收:', str(recv_data, encoding='utf-8'))
print(123456)
# 发送文字信息
if recv_data == 'a':
print(654321)
message = 'HTTP/1.1 200 OK\r\n\r\n 连接成功'
connect.send(message.encode())
print(45687912)
# send_message1 = input('服务器:')
# #
# # connect.send(send_message1.encode())
# # recv_data2 = connect.recv(1024)
# # print('接收:', str(recv_data2, encoding='utf-8'))
# 发送图片列表
else:
filename = 'files'
send_message2 = os.listdir(filename)
connect.send(str(send_message2).encode())
# 接收图片选择
recv_data3 = connect.recv(1024)
print('send-message2:', send_message2)
print('recv_data3:', recv_data3)
if recv_data3 in os.listdir(filename):
print('有当前图片')
with open('files/'+recv_data3, 'rb') as f:
connect.send(f.read())
else:
print('没有此图片')
print(456456)
connect.close()
二.客户端
from socket import *
client = socket()
client.connect(('10.7.181.111', 8088))
send_message = input('请输入请求(a,b)(a.文字信息;b.图片信息):')
client.send(send_message.encode())
# 选择文字信息
if send_message == 'a':
# while True:
# # 接收消息
re_data = client.recv(1024)
print('接收', re_data.decode(encoding='utf-8'))
# 发送消息
# send_message1 = input('客户端:')
# client.send(send_message1.encode())
# 接收图片列表
else:
re_data2 = client.recv(1024)
print(re_data2.decode(encoding='utf-8'))
# 发送想要的图片信息
send_message2 = input('你想要的查看的图片:')
client.send(send_message2.encode())
while True:
re_data3 = client.recv(1024)
with open('files/new.jpg', 'ab') as f:
f.write(re_data3)
if (len(re_data3) < 1024):
break