python 網路程式設計基礎 筆記

2021-06-11 06:48:19 字數 2144 閱讀 9051

第二章:網路客戶端

建立socket(tcp client):

獲取當前根目錄下檔案列表

s.shutdown(1)

//資料呼叫shutdown函式才能確保傳送

while 1:buf = s.recv(2048)if not len(buf): breaksys.stdout.write(buf)

建立socket物件時,需要告訴系統通訊型別(ipv4 or ipv6)和協議家族(tcp or udp)

af_inet

代表ipv4

sock_stream

代表tcp,sock_dgram代表udp

getservbyname(

服務名,協議)函式可以自動查詢服務對應埠

getsockname()

函式返回本地的ip和埠號

getpeername()

函式返回遠端機器的ip和埠號

第三章 網路伺服器

tcp server:

import sys

import socket

host = ''

//bind to all inte***ce

port = 51423

s=socket.socket(socket.af_inet, socket.sock_stream)

s.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

// sol_socket

使用socket選項

// so_reuseadd

當socket關閉時,本地使用者該socket的埠可以重用(保留一段時間該埠)0代表true(馬上釋放埠),1代表false

s.bind((host,port))

print "waiting for connections..."

s.listen(1)

//準備接受連線,引數1代表伺服器實際處理請求是允許多少等待連線,一般作業系統不支援大於5

while 1:

try:

clientsock, clientaddr = s.accept()

//當有client連線返回

except keyboardinterrupt:

raise

except:

traceback.print_exc()

continue

# process the connection

try:

print "got connection from", clientsock.getpeername()

//('127.0.0.1', 39675) clientsock.getpeername()

返回client ip, port

except (keyboardintertupt, systemexit):

raise

except:

traceback.print_exc()

#close the connection

try:

clientsock.close()

except keyboardintertupt:

raise

except:

traceback.print_exc()

python網路程式設計基礎

客戶 伺服器架構 伺服器 是乙個軟體或硬體,用於提供客戶需要的 服務 伺服器存在的唯一目的就是等待客戶的請求,給這些客戶服務,然後再等待其他的請求.常見的服務型別 硬體的客戶 伺服器架構 印表機,檔案伺服器 軟體客戶 伺服器架構 web伺服器,資料庫伺服器,視窗伺服器 gui 套接字 用於程序間通訊...

python 網路程式設計基礎

python實在是太方便,太易用了,三方庫的支援又全,語法又簡單,對開發人員來說,實在是居家旅行,x的必備利器。週末研究了下python的網路支援,做一下記錄,以備隨後翻閱。python支援bsd的socket進行網路程式設計,其api跟c中的大同小異,先看看tcp方式的,說到網路程式設計,肯定會設...

python網路程式設計基礎

目錄 標籤 空格分隔 網路程式設計 目錄tcp和udp tcp的使用是面向連線的,即資料的傳輸必須基於虛鏈路的完整建立。虛鏈路的建立提供了很多優秀的功能,比如確認重傳以保證資料的完整性,滑動視窗以保證資料傳輸的高效性,各類選項字段提供不同的可選功能。tcp的缺點是報頭大,因為需要包含比udp更多的功...