2018-11-28 Day18-homework

3320 단어
작업:
  • 클라이언트와 서버가 채팅을 하면 한쪽이'안녕'을 보낼 때까지 계속 채팅할 수 있다.그리고 다음 사람과 계속 이야기할 수 있다

  • (서버)
    import socket
    server = socket.socket()
    server.bind(('10.7.187.72', 8086))
    server.listen(1024)
    while True:
        conversation, addr = server.accept()
        print(' !')
        while True:
            recv_data = conversation.recv(1024)
            print(' :', recv_data.decode('utf-8'))
            if recv_data.decode('utf-8') == ' ':
                break
            message = input(' :')
            conversation.send(message.encode('utf-8'))
            if message == ' ':
                break
    

    (클라이언트)
    import socket
    
    client = socket.socket()
    client.connect(('10.7.187.72', 8086))
    while True:
        message = input(' :')
        client.send(message.encode('utf-8'))
        if message == ' ':
            break
        recv_data = client.recv(1024)
        print(' :', recv_data.decode('utf-8'))
        if recv_data.decode('utf-8') == ' ':
            break
    

    2. 클라이언트가 서버에 요청을 보내고 요청이 성공하면 클라이언트가 서비스에'1'을 보내면 서버는 클라이언트에게 사진 한 장을 보낸다.클라이언트가 서비스에'2'를 보내면 서버는 클라이언트에게 json 파일의 내용을 되돌려줍니다.클라이언트가 서비스에'3'을 보내고 서버가'안녕'으로 돌아가서 연결을 끊습니다
    (서버)
    import socket
    server = socket.socket()
    server.bind(('10.7.187.72', 8100))
    server.listen(1024)
    while True:
        conversation, addr = server.accept()
        print(' !')
        while True:
            recv_data = conversation.recv(1024)
    
            if recv_data.decode('utf-8') == '1':
                with open('./okok.jpg', 'rb') as f:
                    content = f.read()
                    conversation.send(content)
                    print(' ', recv_data.decode('utf-8'))
            elif recv_data.decode('utf-8') == '2':
                with open('./1234.json', 'r', encoding='utf-8') as f1:
                    json1 = f1.read()
                    print(json1)
                    conversation.send(json1.encode('utf-8'))
                    print(' ','2')
            elif recv_data.decode('utf-8') == '3':
                conversation.send(' '.encode('utf-8'))
                break
    

    (클라이언트)
    import socket
    import json
    
    def get_picture():
        data = bytes()
        while True:
            re_data = client.recv(1024)
            data += re_data
            with open('./ .jpg', 'bw') as f:
                f.write(data)
    def json1_get():
        re_data = client.recv(1024)
        json1 = re_data.decode('utf-8')
        print(json1)
        with open('./ .json', 'w') as f:
            json.dump(json1, f)
        print('2(1)')
    
    client = socket.socket()
    client.connect(('10.7.187.72', 8100))
    
    while True:
        message = input(' :')
        client.send(message.encode('utf-8'))
        data = bytes()
        # while True:
        #     print('2')
        if message == '1':
            print(' !')
            get_picture()
        if message == '2':
            print(' json ')
            json1_get()
        if message == '3':
            re_data = client.recv(1024)
            print(' :', re_data.decode('utf-8'))

    좋은 웹페이지 즐겨찾기