第3章 - ネットワークプログラミングの基礎

  図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
 

 

 

 






おすすめ

転載: www.cnblogs.com/jiujiang/p/11449598.html