socketネットワークプログラミング、TCP/UDPモデルC/Sプログラミングフロー解析

1501 ワード

一、ネットワークプログラミング
実際のプロジェクト開発の過程で、私たちはよくネットワークプログラミングを行い、ネットワークで複数のリンクをリンクし、データ伝達を行う必要があります.私たちが使っている言語がC++、Java、Python言語であっても、現在は対応するパッケージクラスが使用でき、プログラミング効率を大幅に向上させています.しかし、最も重要なのはsocketネットワークプログラミングの基本原理と流れを理解することである.
socket(ネットワークソケット)はプロセス間通信の一種であり、他のプロセス間通信との主な違いは、異なるホスト間のプロセス間通信を実現することができ、私たちのネットワーク上の様々なサービスの多くはSocketに基づいて通信を完了することである.例えば、私たちは毎日ホームページを閲覧したり、QQチャットをしたり、emailを送受信したりします.
二、Socketネットワークプログラミング
以下、python言語を例に、ネットワークプログラミングの簡単な流れとtcp/udpのC/Sネットワーク通信モデルを簡単に説明する.他の言語はC++のように、原理と流れは同じですが、具体的に使用するクラス関数の名前が異なる可能性があります(MFCにCSocketクラスがカプセル化されているなど、ネットワークプログラミングが便利ですが、不足もあります)、使用前のクエリーで確認すればいいです.
(1)Pythonでsocketモジュールの関数socketを使えば、次のことができます.
import socket
socket.socket(AddressFamily, Type)

①Address Family:AF_を選択可能INET(インターネットプロセス間通信用)またはAF_UNIX(同じマシンプロセス間通信用)、実際の作業でよく使われるAF_INET;
②Type:ソケットタイプ、SOCK_STREAM(主にTCPプロトコル用)またはSOCK_DGRAM(データ・レポート・ソケット、主にUDPプロトコル用)
(2)ソケットの作成:TCPとUDP
①tcpソケットを作成する
import socket

#   tcp    
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# ...           (  )...

#      ,     
s.close()

②udpソケットを作成する
import socket

#   udp    
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# ...           (  )...

#      ,     
s.close()

③まとめ:ソケットの使い方はファイルの使い方と似ています
  • ソケット
  • を作成する
  • ソケットによるデータ送受信
  • ソケット
  • を閉じる
    (3)UDP,ネットワークソケットプログラミング
    ①UDPネットワークプログラミング手順:
  • クライアントソケット
  • を作成する.
  • 送受信データ
  • ソケット
  • を閉じる