套接字对话

2018-08-07  本文已影响0人  KingJX

写一个两个人的聊天系统,可以实现双向聊天功能。
如果发送的是普通的文字就直接打印,如果发送的文字是’拜拜’就关闭连接,
如果是一个网络地址就获取数据,如果是图片地址就下载图片到本地

import socket
import re
from  requests import request
if __name__ == '__main__':
    server = socket.socket()
    server.bind(('192.168.1.102', 8088))
    server.listen(5)

    while True:

        conversation, addr = server.accept()

        # 发送消息
        while True:
            message = input('>>>')
            conversation.send(message.encode())

            # 接收消息
            message_data = conversation.recv(1024)
            url1 = message_data.decode(encoding='utf-8')
            url = re.split(r'\s', url1)
            if re.fullmatch(r'http.+', url[0]):
                if re.fullmatch(r'.+\.jpg|.+\.png|.+\.gif|.+\.jpeg', url[0]):
                    response = request('GET', url[0])
                    str1 = re.findall(r'.*(.{8})', url[0])
                    content = response.content
                    with open(str1[0], 'wb') as f:
                        f.write(content)

                else:
                    # url = re.split(r'\s', url1)
                    response = request('GET', url[0])
                    text = response.text
                    print(text)


            else:
                print(url1)


        # conversation.close()

import socket
if __name__ == '__main__':
    client = socket.socket()
    client.connect(('192.168.1.102', 8088))
    while True:
        data = client.recv(1024)
        print(data.decode(encoding = 'utf-8'))
        str1 = input('>>>')
        client.send(str1.encode(encoding='utf-8'))
网络编程.gif 获取网络上的图片.png
上一篇 下一篇

猜你喜欢

热点阅读