python網路程式設計

weixin_34174105發表於2016-12-11

一、概述

  Python 提供了兩個級別訪問的網路服務。

  • 低階別的網路服務支援基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層作業系統Socket介面的全部方法。
  • 高階別的網路服務模組 SocketServer, 它提供了伺服器中心類,可以簡化網路伺服器的開發

二、引數

  • family: 套接字家族可以使AF_UNIX或者AF_INET
  • type: 套接字型別可以根據是面向連線的還是非連線分為SOCK_STREAMSOCK_DGRAM
  • protocol: 一般不填預設為0.

三、服務端

  我們使用 socket 模組的 socket 函式來建立一個 socket 物件。socket 物件可以通過呼叫其他函式來設定一個 socket 服務。

現在我們可以通過呼叫 bind(hostname, port) 函式來指定服務的 port(埠)

接著,我們呼叫 socket 物件的 accept 方法。該方法等待客戶端的連線,並返回 connection 物件,表示已連線到客戶端。

完整程式碼如下:

 1 # coding=utf-8
 2 # 檔名:server.py
 3 
 4 import socket               # 匯入 socket 模組
 5 
 6 s = socket.socket()         # 建立 socket 物件
 7 host = socket.gethostname() # 獲取本地主機名
 8 port = 12345                # 設定埠
 9 s.bind((host, port))        # 繫結埠
10 
11 s.listen(5)                 # 等待客戶端連線
12 while True:
13     c, addr = s.accept()     # 建立客戶端連線。
14     print 'address:', addr
15     c.send('welcome to!')
16     c.close()                # 關閉連線

四、客戶端

  接下來我們寫一個簡單的客戶端例項連線到以上建立的服務。埠號為 12345。

socket.connect(hosname, port ) 方法開啟一個 TCP 連線到主機為 hostname 埠為 port 的服務商。連線後我們就可以從服務端後期資料,記住,操作完成後需要關閉連線。

完整程式碼如下:

 1 # coding=utf-8
 2 # 檔名:client.py
 3 
 4 import socket               # 匯入 socket 模組
 5 
 6 s = socket.socket()         # 建立 socket 物件
 7 host = socket.gethostname() # 獲取本地主機名
 8 port = 12345                # 設定埠好
 9 
10 s.connect((host, port))
11 print host
12 print socket.gethostbyaddr(host)
13 print socket.SocketType
14 print s.recv(1024)
15 s.close()

五、Python Internet 模組

  以下列出了 Python 網路程式設計的一些重要模組:

協議功能用處埠號Python 模組
HTTP網頁訪問80httplib, urllib, xmlrpclib
NNTP閱讀和張貼新聞文章,俗稱為"帖子"119nntplib
FTP檔案傳輸20ftplib, urllib
SMTP傳送郵件25smtplib
POP3接收郵件110poplib
IMAP4獲取郵件143imaplib
Telnet命令列23telnetlib
Gopher資訊查詢70

gopherlib, urllib

   

 

 

 

 

 

 

 

   

轉載於:https://www.cnblogs.com/swarmbees/p/6160288.html

相關文章