- 客戶端和服務(wù)器聊天,可以一直聊天膏萧,直到一方發(fā)送’拜拜’湾笛。然后就可以和下一個人一直聊
服務(wù)器端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('10.7.187.58', 8083))
server.listen(312)
while True:
conversation, addr = server.accept()
while True:
re_data = conversation.recv(1024)
print('客戶端:', re_data.decode('utf-8'))
message = input('服務(wù)器')
conversation.send(message.encode('utf-8'))
if re_data.decode('utf-8') == '拜拜':
break
客戶端
import socket
client = socket.socket()
client.connect(('10.7.187.58', 8083))
while True:
message = input('客戶端')
client.send(message.encode('utf-8'))
data = client.recv(1024)
print('服務(wù)器:', data.decode('utf-8'))
if message == '拜拜':
break
2.客戶端給服務(wù)器發(fā)送請求饮怯,請求成功后,客戶端給服務(wù)發(fā)送‘1’嚎研,服務(wù)器就給客戶端發(fā)送一張圖片蓖墅;客戶端給服務(wù)發(fā)送‘2’,服務(wù)器就給客戶端返回一個json文件中的內(nèi)容;客戶端給服務(wù)發(fā)送‘3’, 服務(wù)器返回’拜拜’,然后斷開連接
服務(wù)器
import socket
import json
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('10.7.187.58', 8083))
server.listen(312)
while True:
conversation, addr = server.accept()
while True:
re_data = conversation.recv(1024)
print('客戶端:', re_data.decode('utf-8'))
if re_data.decode('utf-8') == '1':
with open('王爺.jpg', 'rb') as f:
message = f.read()
conversation.send(message)
break
elif re_data.decode('utf-8') == '2':
with open('1.json', encoding='utf-8') as f:
message = json.load(f)
conversation.send(str(message).encode('utf-8'))
if re_data.decode('utf-8') == '3':
conversation.send('拜拜'.encode('utf-8'))
break
conversation.close()
客戶端
import socket
import json
client = socket.socket()
client.connect(('10.7.187.58', 8083))
byte = bytes()
while True:
message = input('客戶端')
client.send(message.encode('utf-8'))
if message == '1':
while True:
data = client.recv(1024)
byte += data
if not data:
break
with open('new2.jpg', 'bw') as f:
f.write(byte)
break
elif message == '2':
data = client.recv(1024)
with open('new1.json', 'w', encoding='utf-8') as f:
json.dump(data.decode('utf-8'), f)
with open('new1.json', encoding='utf-8') as f:
print(f.read())
else:
print((client.recv(1024)).decode('utf-8'))
break
client.close()