1 / 15

TCPでのPythonソケット関数

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)

Download Presentation

TCPでのPythonソケット関数

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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) • s.listen(backlog) • connection, address = s.accept() • string = connection.recv(bufsize [, flags]) • connection.send(string [, flags])

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

  3. データ データ IP TCP TCPによる通信 TCP通信は、コネクション型の通信で、サーバはlisten()de クライアントのconnect()要求を待つ。 コネクションにより、通信状態が確定すると、 サーバはaccept()を送る。

  4. gethostname() 機能 ローカルマシンのホスト名を返す。 例 >>> from socket import * >>> gethostname() 'pro3'

  5. gethostbyname(hostname) 機能 ホスト名のIPアドレスを返す。 例 >>> from socket import * >>> gethostbyname("pro1.anesth.kpu-m.ac.jp") '192.168.22.1'

  6. 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'])

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

  8. 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)

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

  10. s.close() 機能 ソケットを閉鎖する。 例 s.close()

  11. s.connect(address) 機能 コネクション型通信(TCP)で使用するクライアント側 通信要求。 addressは(host, port)のタプル形式。 例 s.connect(("pro3.anesth.kpu-m.ac.jp", 10000))

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

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

  14. string = connection.recv(bufsize [, flags]) 機能 メッセージを受信する。ソケットからデータを受信し、文字列として返します。受信する最大バイト数は、bufsizeで指定します。 例 data = connection.recv(1024)

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

More Related