Day17-作业

2018-08-07  本文已影响0人  晓晓的忍儿

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
图片
>>>
上一篇 下一篇

猜你喜欢

热点阅读