まず、サーバ
ソケットオブジェクトを作成します。1.
ソケット。ソケット(家族= AF_INET、タイプ= SOCK_STREAM、プロト= 0、FILENO =なし)
AF_INET:IPv4プロトコル
SOCK_STREAM:バイトストリームソケット
戻り値:負でない整数は、文字表現のソケットと呼ばれます
2、ソケットのバインドアドレス
socket.bind((ホスト、ポート))
ソケットに割り当てられたローカルプロトコルアドレスに、このアドレスは既に他のソケットにバインドされていません。
3、モニター
socket.listen(5)
このようなソケットは接続を受け付けます。接続の最大数を設定するために図5に示すように、この値は自分自身を設定することができ、最小値は0であります
図4に示すように、接続を受け入れます
CONN、ADDR = socket.accept()
接続を受け入れるには、ソケットは、アドレスバインディング、および接続を待機している必要があります。
戻り値は、connは、この接続でデータを送信および受信するために、新しいソケットオブジェクトである(CONN、アドレス)です。バインディングアドレスは、ソケットコネクタのもう一方の端のアドレスです。
図5に示すように、受信したデータ
conn.recv(BUFSIZE)
ソケットからデータを受信し、受信したデータの戻り値は、データ型はオブジェクトバイトです。それはBUFSIZEに受信するデータの使い捨て最大量。ネットワークまたはハードウェアに良いだけでは不十分であり、受信したデータは、以下BUFSIZEの量よりもできます。
図6に示すように、送信データ
conn.send(バイト)
リモートソケットアドレスにデータを送信するために接続されています。戻り値は、送信されたバイト数です。戻り値は以下送信されるバイトの数よりもできます。アプリケーションは、一部のデータが送信されない場合、アプリケーションが再びデータの残りの部分に送信する必要があり、すべてのデータを送出する責任があります。
conn.sendall(バイト)
全体のインターフェースは、リモートソケットアドレスにデータを送信する責任があります。成功したリターンなした場合、失敗例外がスローされます。
第二に、クライアント
ソケットオブジェクトを作成します。1.
socket.socket(socket.AF_INET.socket.SOCK_STEAM)
同じサーバーでソケットオブジェクトを作成します。
2、socket.connect((ホスト、ポート))
リモートソケットアドレスに接続することにより、
図3に示すように、受信したデータ
socket.recv()
同じサーバーのrecv()
図4に示すように、送信データ
socket.send()
同じサーバ送信()
socket.sendall()
サーバー側sendall付き()