【程式碼】傳智播客 Python基礎班+就業班
阿新 • • 發佈:2018-12-16
工廠方法模式:基類定義介面,子類具體實現
class Store(object): #此處選車並不會執行 def select_car(self): print("Store:select_car") # 店鋪只負責訂購功能,新增選車介面 def order(self, car_type): return self.select_car(car_type) class BMW_Car_Store(Store): #繼承基類,實現自己的選車方案,即呼叫工廠類 def select_car(self, car_type): return BMW_Factory().select_car_by_type(car_type) class BMW_Factory(object): #被呼叫類的最終選車實現 def select_car_by_type(self, car_type): print("BMW_Factory in BMW_Car_Store") bmw_store = BMW_Car_Store() bmw = bmw_store.order("720li")
tcp server
from socket import * #建立伺服器套接字,繫結ip埠,監聽(被動連線)數量 svr_skt = socket(AF_INET, SOCK_STREAM) svr_skt.bind(('',7789)) svr_skt.listen(4) #建立伺服器接收到待客戶端(阻塞,等客戶端連入),及其ip和port clt_skt, clt_info = svr_skt.accept() #接收資料 recv_data = clt_skt.recv(1024) print str(clt_info)+':'+str(recv_data) #傳送資料,將字串中文編碼 #svr_skt.send('hello xp'.encode('gb2312')) #此處send資料報錯:socket.error: [Errno 32] Broken pipe #關閉客戶端,再伺服器 clt_skt.close() svr_skt.close()
tcp client
from socket import *
#建立套接字,繫結伺服器埠
clt_skt = socket(AF_INET, SOCK_STREAM)
clt_skt.connect(('192.168.37.3',8989))
#連線後即傳送資訊,此處c發給s成功,而s發給c失敗
clt_skt.send('hello xp'.encode('gb2312'))
#接收資料
rcv_data = clt_skt.recv(1024)
print(rcv_data)
#關閉套接字
clt_skt.close()
udp receive & send
from socket import * #建立套接字,繫結接收ip和埠 udp_skt = socket(AF_INET, SOCK_DGRAM) bind_addr = ('',7788) udp_skt.bind(bind_addr) #輸入待發送資訊,傳送 send_info = raw_input('input infomation to send:') udp_skt.sendto(str(send_info),('192.168.37.3',8080)) #等待接收資訊, recv_data = udp_skt.recvfrom(1024) print str(recv_data[1])+':'+recv_data[0] #關閉套接字 udp_skt.close()