socket模組函式

20170405發表於2020-08-14

  套接字用法

  4.1 socket模組函式用法

  import socket

  socket.socket(socket_family, socket_type, protocal=0)

  # socket_family可以是AF_INET或者AF_UNIX

  # socket可以是SOCK_STREAM或者是SOCK_DGRAM

  # protocal一般不填,預設為0

  獲取tcp/ip套接字

  tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  獲取udp/ip套接字

  udpSock =socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

  4.2 服務端套接字函式

  s.bind() # 繫結主機、埠號到套接字

  s.listen() # 開始tcp監聽

  s.accept() # 被動接受tcp客戶端的連線,(阻塞式)等待連線的到來

  4.3 客戶端套接字函式

  s.connect() # 主動初始化tcp伺服器連線

  s.connect_ex() # connect函式的擴充用法,出錯時不會拋異常,而是返回錯誤碼

  4.4 公共用途的套接字函式

  s.recv() # 接受tcp資料

  s.send() # 傳送tcp資料(send在待傳送資料量大於己端快取區剩餘空間時,資料丟失,不會發完)

  s.sendall() # 傳送完整的tcp資料(本質就是迴圈呼叫send函式,直到發完)

  s.recvfrom() # 接受udp資料    

  s.sendto() # 傳送udp資料

  s.getpeername() # 連線到當前套接字的遠端地址

  s.getsockname() # 當前套接字的地址

  s.getsockopt() # 返回指定套接字的引數

  s.setsockopt() # 設定當前套接字的引數

  s.close() # 關閉套接字

  4.4 面向鎖的套接字方法

  s.setblocking() # 設定套接字的阻塞與非阻塞模式

  s.settimeout() # 設定阻塞套接字操作的超時時間

  s.gettimeout() # 得到阻塞套接字操作的超時時間

  4.5 面向檔案的套接字函式

  s.fileno() # 套接字的檔案描述符

  s.makefile() # 建立一個與套接字相關的檔案


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979119/viewspace-2711741/,如需轉載,請註明出處,否則將追究法律責任。

相關文章