図1に示すように、ソケット:一種、AF_UNIX、(ソケットメイン関数からの早期Unixシステムにおいて、主に同じコンピュータのために、直接通信複数のプログラムを開発した)に基づいてソケットファイル
Unixシステムで中心的な考え:すべてがファイルであります
ネットワークソケットのタイプに基づいて、2、、AF_INET
3 、TYPE:
TCPプロトコル:SOCK_STREAM
UDPプロトコル:SOCK_DGRAM
4、TCP:信頼性の高い、接続指向、指向のトランスポートモードのバイトストリーム
5、UDP:コネクション指向、パケット指向のデータ伝送のない信頼できない、が、すぐに
図6に示すように、ゲートウェイ:ローカル・エリア・ネットワークの入口と出口と同様
LAN内のIPアドレス範囲:7、セグメント
のセグメントまで&IPアドレス、サブネットマスク:8、サブネットマスク
:9、OSI 5つのモデル
のアプリケーション層:HTTP、HTTPS、FTPの
輸送層:TCP / UDP 4つのスイッチは4つのルータ
ネットワークレイヤ:レイヤプロトコルルータのIPスイッチ
ネットワークリンク層は:ARPプロトコルブリッジイーサネット・スイッチ・カード
の物理層:光ファイバケーブルは、電気信号のハブを送信します
同じプログラムでコンピュータにもPY:オープンファイル
B、通信する方法を2台のコンピュータ:に接続されたケーブル
C、コンピュータ通信の複数:
EX:1台のPC(ソース)は、コンピュータ2(ターゲット)を見つけるために
コンピュータ1つの最初の送信を(私のIPアドレス、MACアドレス、IPアドレスがターゲットを探しているを含む)要求フレーム、
他のホストにこの情報ブロードキャストを切り替える
ターゲットホストが、メッセージを受け取るには、比較は、スイッチを返す、ターゲットを探していることがある彼自身を見つけます自身のIPアドレス、MACアドレス
、IPアドレスがホストXXXXXXに返されるが、された
単一波形ホストスイッチに戻っ
:知識
1. MACアドレスを物理アドレスがIDカードと同様に、グローバルに一意である
2、IPアドレスは:4でありますネットワーク内のコンピュータの場所を特定するサイト小数、
のIPアドレス、宛先MACアドレスによってプロトコル取得対象:3、ARPプロトコル
4、ポート:ホストコンピュータ上のそれぞれのアプリケーションのためのオペレーティング・システムは、ランダムに割り当てられていますポート
TCPプロトコルのプログラミング方法:
サーバークライアントは、
オブジェクトのオブジェクトインスタンスインスタンス
のIPアドレスとポートの
モニタが
接続サーバクライアント受信
トランシーバトランシーバを
OFF OFF
スイッチとルータの違いは?
主な機能は、ローカル・エリア・ネットワーク・スイッチを整理することで、スイッチは、内部処理、情報ポイント、マルチドット形状後解析し、固定端に送信する
ルータの主要な機能:最適経路ルータ選択データ伝送のためのネットワーク間、ため
EX:
もしあなたはより多くのネットワークケーブルに接続された1台のコンピュータよりも、あなたはスイッチを使用することができるものとし
、インターネットへのアクセスを必要とし、あなたが唯一の外部のネットワークIPを持っている場合がありますが、コンピュータの多くを持っている、あなたは、ルータを使用することができます
# 案例1 通信 import socket import time sk = socket.socket() # 买了一个手机 sk.bind(('192.168.1.107',18080)) # 买了一张手机卡 sk.listen() # 开机 sock,addr = sk.accept() # 等待朋友连接 msg_recv = sock.recv(1024) # 接收朋友传来的bytes信息 sock.send(b'library') print(msg_recv.decode('utf-8')) # 进行解码 time.sleep(20) sock.close() # 关闭电话 sk.close() # 关机
import socket class MySocket(socket.socket): # 继承socket文件中的socket类 def __init__(self,encoding='utf-8'): # 给它一个默认的utf-8编码格式 self.encoding = encoding # 将utf-8编码格式封装给encoding super(MySocket, self).__init__(type=socket.SOCK_DGRAM) # 执行父类中的__init__方法,将默认tcp协议改成udp协议 def my_sendto(self,msg,addr): # 定义一个发消息类 return self.sendto(msg.encode(self.encoding),addr) # 调用父类中的sendto方法 def my_recvfrom(self,num): # 定义一个接收方法 msg_r,addr = self.recvfrom(num) # 调用父类中的recvfrom方法 return msg_r.decode(self.encoding),addr