TCP-echo通信のモデル Python socket module: Just a thin wrapper over the underlying C library's socket calls. TCPソケットプログラミング TCP通信のモデルとプログラミングための背景知識 ソケットプログラミング TCP-echoのデータ通信手順 TCP-echo動作テスト(Cプログラム・Client/Serverは個別 の端末) TCP-echo動作テスト(Cプログラム・Client/Serverは端末 を共有) TCP-echo動作テスト(Pythonプログラム・Client/Server は個別の端末) TCP-echo通信のモデル ソケットによるデータ通信とTCP/IPネットワーク IPヘッダ情報 IP TCP TCPヘッダ情報 データ データ TCP/IP ネットワーク •通信プログラムを作成する上では、通信相手のソケットに自分の ソケットを繋ぐことができれば、安定した通信を行うことができる。 •安定した通信は、TCP/IPのプロトコルで自動的に対処される。 •ソケットを繋ぐことができれば、 マシン同士が、どの様な通信機器 や伝送経路を辿って、データを送受信しているかなどを気にする必 要は無くなる。 TCP-echo通信のモデル ソケットプログラミング データ ソケット • アプリケーションがデータを送 信するための仕組みを抽象 化したオブジェクト • データの送受信は、ファイル ソケット I/Oとほぼ同じ ストリームソケット TCP使用 データグラムソケット UDP使用 ソケットの共有 複数のアプリケーションが同一 のソケットを参照できる AP 1 データ データ AP AP 2 65535 1 2 65535 IP TCP TCP UDP IP TCP-echo通信のモデル TCP-echoのデータ通信手順 TCPEchoClient socket() connect() データ send() ”Hello” TCPEchoServer コネクション設定 socket() bind() listen() accept() ”Hello” データ IP recv() TCP データ通信を行う recv() close() データ通信を行う ”Hello” コネクション開 放 send() close() ”Hello” TCP-echo通信のモデル TCP-echo動作テスト ( Cプログラム・Client/Serverは個別の端末) TCPEchoClient $ gcc -o TCPEchoServer TCPEchoServer.c HandleTCPClient.c DieWithError.c $ ./TCPEchoServer 5000 Handling client 150.43.220.22 Handling client 150.43.220.22 データ IP TCPEchoServer ”Yahoo” データ TCP ”Yahoo” ”Yahoo” $ gcc -o TCPEchoClient TCPEchoClient.c DieWithError.c $ ./TCPEchoClient 150.43.220.22 "Yahoo" 5000 データ Received: Yahoo $ ./TCPEchoClient 150.43.220. 22 "Jazz" 5000 Received: Jazz $ ”Jazz” IP ”Jazz” ”Yahoo” データ TCP ” Jazz” ”Jazz” TCP-echo通信のモデル TCP-echo動作テスト ( Cプログラム・Client/Serverは端末を共有) TCPEchoClient $ gcc -o TCPEchoServer TCPEchoServer.c HandleTCPClient.c DieWithError.c データ $ gcc -o TCPEchoClient TCPEchoClient.c DieWithError.c $ ./TCPEchoServer 5000 & [1] 11972 $ ./TCPEchoClient 150.43.220.22 "Yahoo" 5000 ”Yahoo” Handling client 150.43.220.22 Received: Yahoo $ ./TCPEchoClient 150.43.220. 22 "Jazz" 5000 データ Handling client 150.43.220.22 Received: Jazz $ IP TCPEchoServer ”Yahoo” データ TCP ”Yahoo” IP ”Jazz” ”Yahoo” データ TCP ” Jazz” ”Jazz” ”Jazz” TCP-echo通信のモデル TCP-echo動作テスト ( Pythonプログラム・Client/Serverは個別の端末) prompt $N:$D:$S E:> TCPEchoServer.py TCPEchoServer 50007 Server connected by ('127.0.0.1', 1462) Server received data : Hello network world No data recevied Server connected by ('127.0.0.1', 1463) Server received data : Hello network world No data recevied TCPEchoClient データ prompt $N:$D:$S データ E:> TCPEchoClient.py TCPEchoClient localhost 50007 Client received data : Echo>=Hello network world E:> TCPEchoClient.py TCPEchoClient localhost 50007 Client received data : Echo>=Hello network world E:> TCPEchoServer データ Hello network world Echo>=Hello network world Hello network world Echo>=Hello network world データ
© Copyright 2024 ExpyDoc