day 26まとめ

4819 ワード

1.ソフトウェア開発アーキテクチャ:
ソフトウェアを開発するには、カスタマーサービスとサービスを開発しなければなりません。
クライアントとサービスの役割
サービス:24時間はサービスに応じられません。
クライアント:サービスを探したいなら、サービスを探して楽しんでください。
ソフトウェア開発アーキテクチャは2つです。
C/Sアーキテクチャ:
Cient:サービス端末
Server:サービスエンド
利点:ソフトウェアの使用は安定しており、ネットワーク資源を節約できる。
短所:
1.ユーザが同じ装置で複数のソフトウェアを使用する場合、複数のクライアントをダウンロードしなければならない。
2.ソフトウェアの毎回、クライアントは必ず再ダウンロードして更新してください。
c/s構造の構造:
パソコンのqq、pycharmなど…携帯端末の微信、王者の栄光
B/Sアーキテクチャ:
Browser:ブラウザ(クライアント)
Server:サービスエンド
利点:ブラウザでクライアントとして機能し、ユーザーが複数のソフトウェアをダウンロードする必要もなく、ユーザーが更新ソフトをダウンロードする必要もなく、直接ブラウザで使用するソフトウェアにアクセスする。短所:ネットの資源を使いすぎると、ネットが不安定になるとソフトウェアの使用も不安定になります。
B/Sアーキテクチャのソフトウェア:例えば、ブラウザ(クライアント)にソフトウェアのドメイン名を入力する(http://oldboyedu.com/を選択します
2.後期学習
ネットワークプログラミング、プログラミング、データベース開発は、C/Sアーキテクチャのソフトウェアを開発することができます。フロントエンド)、css、js、ウェブフレーム(ネットワークプログラミング、同時プログラミング)は、B/Sアーキテクチャのソフトウェアを開発することができます。
3.ネットワークプログラミング
  • ネットワークプログラミングの発展の歴史
  • のすべての先進的な技術は軍事から源を発しています。遠隔でデータを取得したいので、「ネットワークプログラミング」があります。
  • の早期遠隔通信はどうやって実現されますか?
  • 電話します。
  • 純平パソコン(大尻パソコン)->ケーブル、ケーブルカード
  • ノートパソコン-->ケーブルカード、無線LANカード
  • 遠隔通信を実現するには、必ず1.物理接続媒体-->インターネットカード…2.インターネットプロトコル人と人との間のコミュニケーションの媒体:中国語、英語コンピュータとの間のコミュニケーションの媒体:「インターネットプロトコル」
  • を備えなければならない。
    4.インターネットプロトコル
    インターネットプロトコルはネットワーク7層協議とも呼ばれ、OSI 7層協議は世界標準組織である。OSI七層プロトコル:
  • アプリケーション層
  • は、層
  • を表す。
  • セッション層
  • トランスポート層
  • ネットワーク層
  • データリンク層
  • 物理接続層
  • 学習は下から上へ:優先的に知るべき協議は全部で5階です。
        -      
                        0101010111。
           010:    you
           101:    I
    
        -      
                   "     ",                   。
    
                 :
                1.             。
                2.                  "  "。
                    -           
                        -               12     "mac"  。
                            -  6 :    
                            -  6 :    
    
            -    :
                            。
    
                       :
                  :
                      、  
    
                  :
                        、        。
    
            -    :
                          。
    
        -    
            IP  :             (   )   。
            IP:      
                   : 0.0.0.0
                   : 255.255.255.255
    
            IPV4(  ):
                          ,    IPV4     。
    
            IPV6(  ):
                  IP。
    
              IP:      127.0.0.1 ---> localhost
    
        -    
            TCP/UDP  ,           。
    
            -    :            。
    
            -      : 0-65535
    
              :
                1.     ,  0-1024          (0-1024   )
                2.    8000       8001
    
                          (  ) :
                mysql: 3306
                mongodb: 27017
                Django: 8000
                Tomcat: 8080
                Flask: 5000
                Redis: 6379
                         ,       ,      。
                               。
                                。
    
        -    
            http
            ftp
    まとめ:
    ip:あるコンピュータの位置を一意に識別するために使用します。ポートはコンピュータ上のアプリケーションを確認するために使用されます。
    ip + port:                 。
  • TCPプロトコルの動作原理:
  • TCPは、フロープロトコル
  • である。
  • 三回握手して、四回手を振ります。
  • 三回の握手で接続を構築する:双方向チャネルを確立し、接続を確立する。
  • listen:モニター
  • established:確認要求コネクション確立
  • はデータを送信します:write readクライアントはサーバーにデータを送信して、データはメモリの中で保存して、サーバーが受信を確認する必要があって、データはやっとメモリの中で釈放します。さもなくば、しばらくの時間を置いて一回発送して、サービス側に戻って確認してもらいます。しばらくの間、サービスが戻ってきないか確認しないと、送信をキャンセルします。メモリからデータを解放します。
  • 4回手を振って接続を切断します。
  • TIME_WAIT:時間待ち
  • 5.ソケット:
    1.   Socket?
        socket     ,     C/S      。
    
    2.      Socket?
        socket              。
          :
                    。
    
    3.    
        import socket
    注意:クライアントとサービス端末は必ず守ってください。端send、他端recvの両端は同時にsendまたはrecvです。
    職務に服する
    import socket
    import subprocess
    server = socket.socket()
    server.bind(
        ('127.0.0.1', 8088)
    )
    server.listen(3)  #     ,  “  5       ”
    
    while True:
        #          
        conn, addr = server.accept()
        print(addr)
    
        #          
        while True:
            try:
                data = conn.recv(1024).decode('utf-8')
                res = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE)
                result = res.stdout.read()
    
                # mac linux  bug: b''
                if len(data) == 0:
                    continue
    
                if data == 'q':
                    break
    
                conn.send(data.encode('utf-8'))
    
            except Exception as e:
                print(e)
                break
    
        conn.close()
    
    
    クライアント:
    import socket
    
    client = socket.socket()
    
    client.connect(
        ('127.0.0.1', 8088)
    )
    
    while True:
        send_msg = input('client---》server:')
    
        client.send(send_msg.encode('utf-8'))
    
        if send_msg == 'q':
            break
    
        data = client.recv(1024).decode('utf-8')
        print(data)
    
    client.close()