創建Socket

Python中的Socket模塊中的Socket()函數可以幫助我們創建手機

格式

手機 = socket(機型, 連接方式, protocol = 0)

機型:老人機(AF_UNIX), 智能機(AF_INET)
連接模式: 高清模式(SOCK_STREAM), 流暢模式(SOCK_DGRAM)
protocol一般不填,默認值爲0

現在我們來創建一個TCP/IP Socket 對象

from socket import *
tcpSocket = socket(AF_INET, SOCK_STREAM)

創建一個UDP/IP Socket 對象

from socket import *
udpSocket = socket(AF_INET, SOCK_DGRAM)

所謂的Socket對象就是手機,電話號碼就是主機的IP和Port。之後服務器和客戶端的交流就靠這個手機來聯繫

創建一個TCP服務器

僞代碼

from socket import *

電話 = socket()        #創建一個服務電話
電話.bind(HOST, PORT)   #將電話綁定到服務器上(座機)
電話.listen()           #一次最多接待客戶次數

listen_loop:              #永不停歇地等待客戶的聯繫 

    # 聯繫到一個客戶後將連接線路轉給下屬來處理,服務器繼續等待其他客戶的連接
    連接線路1 = 電話.accept()
    comm_loop:            #通信循環
        data = 連接線路1.recv(緩衝區大小) #獲取客戶的請求
        連接線路1.send(....data)  #對請求進行處理後再發給客戶

上面的recv()函數接收一個緩衝區大小的參數。因爲服務器是從緩衝區接收客戶端的數據的。至於什麼是緩衝區?爲什麼要有這個?下一章會講到。

創建一個TCP客戶端

from socket import *

客戶電話 = socket()       #創建電話

#不用綁定,因爲客戶只要有電話就行,偷的搶的都不重要,你只要有手機能打的通就行

客戶電話.connect(服務器的HOST,PORT) #打過去,和服務器建立聯繫

comm_loop:        #開始對話
    客戶電話.send()/recv()  #發送或接收數據
客戶電話.close()   #掛電話
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章