day18-homework

  1. 客户端和服务器聊天,可以一直聊天,直到一方发送’拜拜’。然后就可以和下一个人一直聊
服务器:
from socket import socket

def create_server():
    # 创建服务器的套接字对象
    fd_server = socket()
    '''
    socket(family=AF_INET,type=SOCK_STREAM)
    family:确定ip协议类型
    AF_INET - ipv4 /AF_INET6 - ipv6/
    type:传输协议类型
    SOCK_STREAM - TCP协议/SOCK_DGRAM UDP协议/
    
    '''
    # 绑定ip地址和端口
    fd_server.bind(('10.7.153.196',8080))

    '''
    bind((ip地址,端口))
    端口: 一台电脑上一个端口标记一个唯一的服务。总共65535个端口,0-1024位特殊端口。
    注意: 同一个端口同一时间只能绑定一个服务。
    '''
    # 开始监听
    fd_server.listen(50)
    '''
    fd_listen(客户端最大连接数)
    '''
    # 让服务器处于运行状态
    while True:

        # 连接客户端,返回连接对象和客户端地址
        # accept()会阻塞线程,直到客户端请求当前服务器
        fd_client, addr = fd_server.accept()
        while True:
            print('用户',addr)
            msg = input('输入内容:')
            fd_client.send(msg.encode())
            '''
            send(data)
            data: python3中要求类型是bytes,python2中可以字符串
            字符串(str)转二进制(bytes):
            方法1: 字符串.encode()
            方法2: b'str' 
            方法3: bytes(字符串, 编码方式)
            '''

            # 接受从客户端发送过来的数据

            recv_data = fd_client.recv(1024)
            print(str(recv_data,'utf-8'))
            '''
            recv(buffsize)- recv()方法也会阻塞线程
            buffsize: 每次能够接收的最大的字节数
            返回值: 接受的数据
            
            二进制转换为字符串:
            方法1:bytes数据.decode()
            方法2:str(bytes数据,编码方式)
            '''
            if msg == '拜拜':
                fd_client.send('你的客户端已解除'.encode())
                fd_server.close()
if __name__ == '__main__':
    create_server()

客户端:
from socket import socket
def create_client():
    # 创建套接字对象
    fd_client = socket()
    fd_server = socket()

    # 连接服务器
    fd_client.connect(('10.7.153.200',8080))
    '''
    connect(服务器地址)
    '''
    # 接受消息
    while True:

        recv_data = fd_client.recv(1024)
        print(recv_data.decode())
        # 发送消息
        msg = input('输入内容:')
        fd_client.send(msg.encode())
        # 断开连接
        if msg == '拜拜':
            fd_client.send('我要关闭连接了,down'.encode())
            fd_client.close()
if __name__ == '__main__':
    create_client()
  1. 下载网络图片(https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2808438283,4249462766&fm=26&gp=0.jpg)到本地
import requests
def download_img(url):
    cont = requests.get(url)
    with open('./files/luffy.jpg','wb') as f:
      f.write(cont.content)
if __name__ == '__main__':
    url = 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2808438283,4249462766&fm=26&gp=0.jpg'
    download_img(url)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作业: 客户端和服务器聊天,可以一直聊天,直到一方发送’拜拜’。然后就可以和下一个人一直聊客户端 服务端 下载网络...
    oxd001阅读 179评论 0 0
  • 客户端和服务器聊天,可以一直聊天,直到一方发送’拜拜’。然后就可以和下一个人一直聊 下载网络图片(https://...
    Deathfeeling阅读 202评论 1 1
  • “我们经历了漫长的严冬才会更迷恋仲夏的狂欢(狂喜)” 《我想过北欧式生活》 你的心会让你选择费时费力费Money的...
    CowCoco阅读 364评论 0 0
  • 今天,是离奇的一天。 下午上课的时候,老李说:“不是只有原子弹爆炸了才能写日记。”但如果原子弹真的爆炸了呢? 就在...
    李泽林好像被用了阅读 151评论 0 1
  • 讲师:翁老师 听课日期:2017.6.9 1、孩子为什么会胆小,敏感? 2、孩子为什么爱发脾气,情绪变化大? 3、...
    小丑妞儿阅读 934评论 0 0