server
'''__author__==fubo'''
'''
写一个两个人的聊天系统,可以实现双向聊天功能。
# 如果发送的是普通的文字就直接打印,如果发送的文字是’拜拜’就关闭连接,
# 如果是一个网络地址就获取数据(保存到文本文件中),如果是图片地址就下载图片到本地
'''
import socket
import re
from requests import request
import json
if __name__ == '__main__':
server=socket.socket()
server.bind(('172.19.167.4',8089))
server.listen(50)
while True:
client,addr=server.accept()
while True:
data=input('>>>')
if data=='拜拜':
client.close()
elif re.match('^\..+\.[a-zA-Z]+',data):
client.send('图片'.encode())
with open(data,'rb')as f:
get_image=f.read()
client.send(get_image)
client.close()
break
elif re.match('(https|ftp|file):.*',data):
client.send('URL'.encode())
client.send(data.encode())
else:
client.send('字符串'.encode())
client.send(data.encode())
str1=client.recv(1024)
str2 = client.recv(1024)
data1=str1.decode(encoding='utf-8')
print(data1)
if data1=='字符串':
data2 = str2.decode(encoding='utf-8')
print(data2)
elif data1=='图片':
data_image=bytes()
while str2:
data_image+=str2
str2 = client.recv(1024)
with open('./aaa.gif','wb') as f:
f.write(data_image)
# client.close()
elif data1=='URL':
data2 = str2.decode(encoding='utf-8')
response=request('GET',data2)
json1=response.json()
with open('./url.json','w',encoding='utf-8')as f:
json.dump(json1,f)
client
'''__author__==fubo'''
'''
'''
import socket
import re
from requests import request
import json
if __name__ == '__main__':
client=socket.socket()
client.connect(('172.19.167.4',8089))
while True:
str1 = client.recv(1024)
str2 = client.recv(1024)
data1 = str1.decode(encoding='utf-8')
print(data1)
if data1 == '字符串':
data2 = str2.decode(encoding='utf-8')
print(data2)
elif data1 == '图片':
data_image = bytes()
while str2:
data_image += str2
str2 = client.recv(1024)
with open('./aaa.gif', 'wb') as f:
f.write(data_image)
# client.close()
elif data1 == 'URL':
data2 = str2.decode(encoding='utf-8')
response = request('GET', data2)
json1 = response.json()
with open('./url.json', 'w', encoding='utf-8')as f:
json.dump(json1, f)
message = input('>>>')
if message=='拜拜':
client.close()
elif re.match('^\..+\.[a-zA-Z]+',message):
client.send('图片'.encode())
with open(message,'rb')as f:
get_image=f.read()
client.send(get_image)
elif re.fullmatch('(https|ftp|file):.*',message):
client.send('URL'.encode())
client.send(message.encode())
else:
client.send('字符串'.encode())
client.send(message.encode())
server结果:
>>>asda
字符串
fsdf
>>>fs
字符串
fsf
>>>https://www.apiopen.top/satinApi?type=1&page=1
字符串
ew
>>>./1.gif
client结果:
字符串
asda
>>>fsdf
字符串
fs
>>>fsf
URL
>>>ew
图片
>>>
网友评论