8.6 day27ネットワークプログラミングOSIの7層のプロトコルモジュールの追加知識の時間

Timeモジュール追加の知識


何の日付と日時の違いはありますか?

date 就是年月日

datetime就是年月时时分秒

次のコードは、なぜ文句を言うのだろうか?

import json
from datetime import datetime,date

print(datetime.today())
print(date.today())
"""
TypeError: Object of type 'datetime' is not JSON serializable
"""

なぜならdatetime 和 data所传出的类型并不是json默认能处理的 不能被json序列化

原則json 处理数据类型用的类是JSONEcoder 你不往dumps里面传cls的类 他就默认用JSONEcoder

JSONEcoder这个类的方法default 定义了他不能序列化时返回的内容

あなたは、自分のJSONEcoderを継承するクラスを作成し、デフォルトのメソッドをオーバーライドすることができました

class MyJson(json.JSONEncoder):
    def default(self, o):
        if isinstance(o,datetime):
            return o.strftime('%Y-%m-%d %X')
        elif isinstance(o,date):
            return o.strftime('%Y-%m-%d')
        else:
            return super().default(self,o)
          
res = {'c1':datetime.today(),'c2':date.today()}
print(json.dumps(res,cls=MyJson))

# {"c1": "2019-08-06 20:38:50", "c2": "2019-08-06"}

デフォルトのメソッドのみ)(プロセスのJSON datetime.todat()とdate.todayをしないで書き換え

指定した形式で出力を制御することができます

ネットワークプログラミング


ソフトウェア開発フレームワーク

C / Sアーキテクチャ(クライアント/サーバー)

C:クライアント

S:サーバー

B / Sのアーキテクチャ(ブラウザ/サーバ)

B:ブラウザ

S:サーバー

PS:B / Sアーキテクチャの必需品のC / Sアーキテクチャです

モバイル端末は、C / Sアーキテクチャ(携帯電話にインストールすなわちクライアント)より火に見える、実際には、/秒(APPは、ブラウザなどのWebページ上のすべてのサービスを働き、電話のすなわち終了)bが上昇しています。

統一されたインタフェース:マイクロチャンネルアリペイは、一つのことをやっています

携帯電話の終了後に、確かにB /秒以上の火であることを予想されます。

サービスとクライアントの特性?

サーバー:24時間サービス

クライアント:サービスを体験したかった場合は、サービスを要求するために、対応するサーバーを行ってきました

どのような学習ネットワークプログラミングの使用、およびb / sのアーキテクチャ・ソフトウェア・ニーズの開発?

C / Sアーキテクチャのソフトウェアを開発することができます学習ネットワークプログラミング

同時実行、データベースのフロントエンドと、Djangoは、B / Sアーキテクチャのソフトウェアを開発することができます

ネットワークプログラミングの歴史

最古のいずれかの高度な技術を軍事に由来しています

戻る過去へ

  1. 初期の電話の電話回線
  2. 大きなお尻、インターネット回線
  3. ノートパソコンの無線電話

リモート最初の必要性を達成するためにある:物理的な接続メディア

人々は、円滑なコミュニケーションの統一言語を達成するために言わなければなりません

>>> 英文

リモートコンピュータとコンピュータとの間で通信する物理媒体さらに必要に加えて、接続されています。

>>> 一套公共的标准/协议

OSIの7契約

应表会传网数物

アプリケーション層

プレゼンテーション層

セッション層

トランスポート層

ネットワーク層

データリンク層

物理接続層

Osi五层协议

アプリケーション層

トランスポート層

ネットワーク層

データリンク層

物理接続層

物理接続層1

電気信号伝送に基づい010101バイナリデータ

2.データリンク層

所定の電気信号グルーピング

B。任意のインターネットに接続されたコンピュータは、ネットワークカードを持っている必要があります

カードの各部分は、世界でもユニークな番号が刻まれています

12進数

トップ6ベンダー号

6行番号の後

この12桁と呼ばれるMACアドレス

PS:上記の2点を総称して「イーサネットプロトコル」と称される

スイッチ

イーサネットベースの通信プロトコルは、
ローカルエリアネットワークを介して通信することができません

3.ネットワーク層

IPプロトコル

限り、インターネットに接続されたコンピュータの規定は、IPアドレス持っている必要がありますとして
のIPアドレスの特長:ドット十進
IPアドレスの最小:0.0.0.0
IPアドレス最大:255.255.255.255
IPアドレスを2つのバージョンがありますIPV4 IPV6(現在のIPv4そのため、十分ではありませんそうIPV6を立ち上げコンピュータ版があります)

IP地址是动态分配的

4.トランスポート層

プロトコルTCP \ UDPポートはの作業に基づいている
ポート(ポート)

実際には、コンピュータとコンピュータとの間でアプリケーションを持つコンピュータ上のアプリケーション間の通信であります

ポート:アプリケーション上のコンピュータの識別子
のポート番号の範囲:0〜65535
注:0 1024にこれらは、オペレーティングシステムのデフォルトのポート番号を使用している
推奨事項:8000の後にポートを使用して
MySQLのデフォルトのポート:3306
Redisのデフォルトポート:6379
Djangoのデフォルトのポート:8000
フラスコデフォルトのポート:5000

ポート番号が動的に割り当てられている
QQに割り当てられている8989以来初めて
再起動しますが、閉じたポート番号が変更されている場合がありますQQ

要約
ip地址:インターネットにアクセスするコンピュータの識別子
port端口:コンピュータ上のアプリケーションの識別子
ip+port:一意のコンピュータにインターネットにアクセスするアプリケーションを識別する

アプリケーション層

HTTPプロトコル

FTPプロトコル

TCPプロトコル

ストリーミングプロトコル、信頼性の高いプロトコル

TCPベースのプロトコルチャンネル

TCPプロトコルが確実にデータを送信する理由は、それが双方向チャネルを使用することです

四振っスリーウェイハンドシェイク

接続を確立するためのスリーウェイハンドシェイク

四の振って外し

おすすめ

転載: www.cnblogs.com/PowerTips/p/11312089.html