15
TCP TCP でで でで Python Python でででででで でででででで TCP TCP でで でで Python Python でででででで でででででで TCP ででででで gethostname() gethostbyname(hostname) gethostbyname_ex(hostname) gethostbyaddr(ipaddress) s = socket(family, type [, proto]) s.bind(address) s.bind(address) s.close() s.connect(address) s.listen(backlog) connection, address = s.accept() string = connection.recv(bufsize [, flags]) connection.send(string [, flags]) Python socket module: Just a thin wrapper over the underlying C library's socket calls.

TCPでのPythonソケット関数

Embed Size (px)

DESCRIPTION

TCPでのPythonソケット関数. Python socket module: Just a thin wrapper over the underlying C library's socket calls. TCP による通信 gethostname() gethostbyname(hostname) gethostbyname_ex(hostname) gethostbyaddr(ipaddress) s = socket(family, type [, proto]) s.bind(address) s.close() s.connect(address) - PowerPoint PPT Presentation

Citation preview

Page 1: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

TCPTCP でのでの PythonPython ソケット関ソケット関数数 TCP による通信 gethostname() gethostbyname(hostname) gethostbyname_ex(hostname) gethostbyaddr(ipaddress) s = socket(family, type [, proto]) s.bind(address)s.bind(address) s.close() s.connect(address) s.listen(backlog) connection, address = s.accept() string = connection.recv(bufsize [, flags]) connection.send(string [, flags])

Python socket module: Just a thin wrapper over the underlying C library's socket calls.

Page 2: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

データ データ

•通信プログラムを作成する上では、通信相手のソケットに自分のソケットを繋ぐことができれば、安定した通信を行うことができる。•安定した通信は、 TCP/IPのプロトコルで自動的に対処される。•ソケットを繋ぐことができれば、 マシン同士が、どの様な通信機器や伝送経路を辿って、データを送受信しているかなどを気にする必要は無くなる。

TCP/IPネットワー

TCP

IP

IPヘッダ情報

TCPヘッダ情報

ソケットによるデータ通信と TCP/IP ネットワーク

Page 3: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

TCP による通信

TCP 通信は、コネクション型の通信で、サーバは listen()de クライアントの connect()要求を待つ。

コネクションにより、通信状態が確定すると、 サーバは accept() を送る。

TCPIP

データ データ

Page 4: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

gethostname()

機能ローカルマシンのホスト名を返す。

例>>> from socket import * >>> gethostname() 'pro3'

Page 5: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

gethostbyname(hostname)

機能ホスト名の IP アドレスを返す。

例>>> from socket import * >>> gethostbyname("pro1.anesth.kpu-m.ac.jp") '192.168.22.1'

Page 6: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

gethostbyname_ex(hostname)

機能ホスト名の IP アドレス名、ニックネーム、 IP アドレスを返す。

例>>> from socket import * >>> gethostbyname_ex("pro1.anesth.kpu-m.ac.jp") ('pro1.anesth.kpu-m.ac.jp', ['pro1'], ['192.168.22.1'])

Page 7: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

gethostbyaddr(ipaddress)

機能機能IP アドレスから、ホスト名の IP アドレス名、ニックネーム、 IP アドレスを返す。 例>>> from socket import * >>> gethostbyaddr("192.168.22.1") ('pro1.anesth.kpu-m.ac.jp', ['pro1'], ['192.168.22.1'])

Page 8: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

s = socket(family, type [, proto])

機能アドレス family 、ソケット typ 、プロトコル番号 proto を 指定して新しいソケットを作る。

AF_INET IPv4 プロトコル (TCP, UDP) AF_UNIX UNIX ドメインプロトコル SOCK_STREAM ストリームソケット (TCP) SOCK_DGRAM データグラムソケット (UDP) SOCK_RAW 生のソケット SOCK_SEQPACKET 連続接続モード転送

例>>> s = socket(AF_INET, SOCK_STREAM)

Page 9: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

s.bind(address)

機能(host, port) 形式の address をソケットに指定する。 この操作により、ネットワークホストとポート番号が 指定される。 host が空文字列の場合、 INADDR_ANY を示し、全ての リモートホストを許可する。

例INADDR_ANY 、ポート番号 10000

add=("",10000) s.bind(add)

Page 10: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

s.close()

機能ソケットを閉鎖する。

例s.close()

Page 11: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

s.connect(address)

機能コネクション型通信 (TCP) で使用するクライアント側 通信要求。address は (host, port) のタプル形式。

例s.connect(("pro3.anesth.kpu-m.ac.jp", 10000))

Page 12: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

s.listen(backlog)

機能コネクション型通信 (TCP) で使用するサーバ側受信キュー を設定する。backlog は数字で少なくとも 1 以上が必要。

例s.listen(5)

Page 13: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

connection, address = s.accept()

機能処理する接続要求に対応した、コネクションオブジェクトと、アドレスを得る。戻り値は (connection, address) のペアで、 connection は接続を通じてデータの送受信を行うための新しいソケットオブジェクト、 address は接続先でソケットに bind しているアドレスを示します。

例connection, address = s.accept()

Page 14: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

string = connection.recv(bufsize [, flags])

機能メッセージを受信する。ソケットからデータを受信し、文字列として返します。受信する最大バイト数は、 bufsize で指定します。

例data = connection.recv(1024)

Page 15: TCPでのPythonソケット関数

TCPTCP でのでの PythonPython ソケット関数ソケット関数

connection.send(string [, flags])

機能メッセージを送信する。ソケットにデータを送信します。ソケットはリモートソケットに接続済みでなければなりません。戻り値として、送信したバイト数を返します。アプリケーションでは、必ず戻り値をチェックし、全てのデータが送られた事を確認する必要があります。データの一部だけが送信された場合、アプリケーションで残りのデータを再送信してください。

例connection.send(data)