第二章:網路客戶端
建立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更多的功...