Upload
forrest-riddle
View
22
Download
0
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
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.
TCPTCP でのでの PythonPython ソケット関数ソケット関数
データ データ
•通信プログラムを作成する上では、通信相手のソケットに自分のソケットを繋ぐことができれば、安定した通信を行うことができる。•安定した通信は、 TCP/IPのプロトコルで自動的に対処される。•ソケットを繋ぐことができれば、 マシン同士が、どの様な通信機器や伝送経路を辿って、データを送受信しているかなどを気にする必要は無くなる。
TCP/IPネットワー
ク
TCP
IP
IPヘッダ情報
TCPヘッダ情報
ソケットによるデータ通信と TCP/IP ネットワーク
TCPTCP でのでの PythonPython ソケット関数ソケット関数
TCP による通信
TCP 通信は、コネクション型の通信で、サーバは listen()de クライアントの connect()要求を待つ。
コネクションにより、通信状態が確定すると、 サーバは accept() を送る。
TCPIP
データ データ
TCPTCP でのでの PythonPython ソケット関数ソケット関数
gethostname()
機能ローカルマシンのホスト名を返す。
例>>> from socket import * >>> gethostname() 'pro3'
TCPTCP でのでの PythonPython ソケット関数ソケット関数
gethostbyname(hostname)
機能ホスト名の IP アドレスを返す。
例>>> from socket import * >>> gethostbyname("pro1.anesth.kpu-m.ac.jp") '192.168.22.1'
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'])
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'])
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)
TCPTCP でのでの PythonPython ソケット関数ソケット関数
s.bind(address)
機能(host, port) 形式の address をソケットに指定する。 この操作により、ネットワークホストとポート番号が 指定される。 host が空文字列の場合、 INADDR_ANY を示し、全ての リモートホストを許可する。
例INADDR_ANY 、ポート番号 10000
add=("",10000) s.bind(add)
TCPTCP でのでの PythonPython ソケット関数ソケット関数
s.close()
機能ソケットを閉鎖する。
例s.close()
TCPTCP でのでの PythonPython ソケット関数ソケット関数
s.connect(address)
機能コネクション型通信 (TCP) で使用するクライアント側 通信要求。address は (host, port) のタプル形式。
例s.connect(("pro3.anesth.kpu-m.ac.jp", 10000))
TCPTCP でのでの PythonPython ソケット関数ソケット関数
s.listen(backlog)
機能コネクション型通信 (TCP) で使用するサーバ側受信キュー を設定する。backlog は数字で少なくとも 1 以上が必要。
例s.listen(5)
TCPTCP でのでの PythonPython ソケット関数ソケット関数
connection, address = s.accept()
機能処理する接続要求に対応した、コネクションオブジェクトと、アドレスを得る。戻り値は (connection, address) のペアで、 connection は接続を通じてデータの送受信を行うための新しいソケットオブジェクト、 address は接続先でソケットに bind しているアドレスを示します。
例connection, address = s.accept()
TCPTCP でのでの PythonPython ソケット関数ソケット関数
string = connection.recv(bufsize [, flags])
機能メッセージを受信する。ソケットからデータを受信し、文字列として返します。受信する最大バイト数は、 bufsize で指定します。
例data = connection.recv(1024)
TCPTCP でのでの PythonPython ソケット関数ソケット関数
connection.send(string [, flags])
機能メッセージを送信する。ソケットにデータを送信します。ソケットはリモートソケットに接続済みでなければなりません。戻り値として、送信したバイト数を返します。アプリケーションでは、必ず戻り値をチェックし、全てのデータが送られた事を確認する必要があります。データの一部だけが送信された場合、アプリケーションで残りのデータを再送信してください。
例connection.send(data)