- 客户端和服务器聊天,可以一直聊天,直到一方发送’拜拜’。然后就可以和下一个人一直聊
服务器端:
import socket
class Server:
def __init__(self,por,ip='10.7.187.112'):
self.por=por
self.ip = ip
def method(self):
server = socket.socket()
server.bind((self.ip,self.por))
server.listen(1024)
while True:
convsation, addr = server.accept()
while True:
data = convsation.recv(1024)
new_data = str(data, 'utf-8')
print('来自客户端的消息:', new_data)
if new_data == '拜拜':
return
else:
message = input('服务器端:')
convsation.send(message.encode('utf-8'))
if message == '拜拜':
return
num=8093
while True:
srever=Server(num).method()
num+=1
客户端
import socket
class Client:
def __init__(self,por,ip='10.7.187.112'):
self.por = por
self.ip = ip
def method(self):
client = socket.socket()
client.connect((self.ip, self.por))
while True:
data = input('客户端:')
client.send(data.encode('utf-8'))
if data == '拜拜':
return
else:
message = client.recv(1024)
print('来自服务器端的消息:', message.decode('utf-8'))
if str(message) == '拜拜':
return
num=8093
while True:
client=Client(num).method()
num+=1
2.客户端给服务器发送请求,请求成功后,客户端给服务发送‘1’,服务器就给客户端发送一张图片;
客户端给服务发送‘2’,服务器就给客户端返回一个json文件中的内容;客户端给服务发送‘3’,
服务器返回’拜拜’,然后断开连接
服务器
import json
import socket
server=socket.socket()
server.bind(('10.7.187.112',8082))
server.listen(1024)
while True:
convasition,adrs=server.accept()
data=convasition.recv(1024)
new_data=str(data,'utf-8')
if new_data=='1':
with open('black.jpg','br') as f:
pic=f.read()
convasition.send(pic)
elif new_data=='2':
with open('js.json','r',encoding='utf-8') as f:
file=json.load(f)
convasition.send(file)
elif new_data=='3':
convasition.send('拜拜'.encode('utf-8'))
convasition.close()
客户端
import json
import socket
client=socket.socket()
client.connect()
data=input('请输入1-3:')
client.send(data.encode('utf-8'))
by=bytes()
while True:
message=client.recv(1024)
by+=message
if not message:
break
print('数据接收完毕')
if data=='1':
with open('图片.jpg','bw') as f:
f.write(message)
elif data=='2':
with open('json文件.json','w',encoding='utf-8') as f:
json.dump(message, f)
elif data=='3':
print(message.decode('utf-8'))