標籤:監聽連接埠 大寫 table 之間 本機 基於 建立 串連數 seq
一、用戶端:1、匯入socket庫import socket 2、指定協議類型client = socket.socket( ) #不填預設是socket.AF_INET,socket.SOCK_STREAM) 協議類型有:
socket 類型 |
描述 |
socket.AF_UNIX |
用於同一台機器上的進程通訊(既本機通訊) |
socket.AF_INET |
用於伺服器與伺服器之間的網路通訊IPV4方式 |
socket.AF_INET6 |
基於IPV6方式的伺服器與伺服器之間的網路通訊 |
socket.SOCK_STREAM |
基於TCP的流式socket通訊 |
socket.SOCK_DGRAM |
基於UDP的資料報式socket通訊 |
socket.SOCK_RAW |
原始通訊端,普通的通訊端無法處理ICMP、IGMP等網路報文,而SOCK_RAW可以;其次SOCK_RAW也可以處理特殊的IPV4報文;此外,利用原始通訊端,可以通過IP_HDRINCL通訊端選項由使用者構造IP頭 |
socket.SOCK_SEQPACKET |
可靠的連續資料包服務 |
3、串連伺服器client.connect((‘www.baidu.com‘,80)) #使用元組tuple的方式傳遞兩個參數 4、發送資料client.send(b‘你好‘) #傳送的資料必須為位元組的方式 5、接收資料data = client.recv(1024) #每次接收1K資料,data為接收到的資料 6、關閉socketclient.close() 二、伺服器端:1、選擇協議:server = socket.socket() 2、監聽連接埠:server.bind((‘localhost‘,80)) #使用元組tuple方式傳參server.listen(3) #監聽連接埠,並設定最大等待串連數 3、等待用戶端串連:while True: conn,addr = server.accept() #接收新串連 t = threading.Thread(target = tcplink,args=(conn,addr)) #建立新線程處理tcp串連 t.start() 4、與用戶端資料互動while True: data = conn.recv(1024) #接收1kb資料 conn.send(data.upper()) #將用戶端的資料小寫變大寫傳回去
十五、python開發之網路通訊socket