chapter 02 網路程式設計

2021-10-05 18:14:27 字數 1612 閱讀 9193

1)建立tcp/ip套接字:

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

2)建立udp/ip套接字:

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

2、建立tcp伺服器、tcp客戶端並執行

1)建立tcp伺服器(偽**)

ss =

socket

() #建立伺服器套接字

ss.bind

() #套接字與位址繫結

ss.listen

() #監聽連線

inf_loop: #伺服器無限迴圈

cs = ss.

accept

() #接受客戶端連線

comm_lop: #通訊迴圈

cs.recv()

/cs.

send

() #對話(接收/傳送)

cs.close

() #關閉客戶端套接字

ss.close

() #關閉伺服器套接字#(可選)

2)建立tcp客戶端(偽**)

cs =

socket

() #建立客戶端套接字

cs.connect

() #嘗試連線伺服器

comm_loop: #通訊迴圈

cs.recv()

/cs.

send

() #對話(接收/傳送)

cs.close

() #關閉客戶端套接字

3)執行tcp伺服器和客戶端:首先啟動伺服器(在客戶端試圖連線之前)

3、建立udp伺服器、udp客戶端並執行

1)建立udp伺服器(偽**)

ss =

socket

() #建立伺服器套接字

ss.bind

() #繫結伺服器套接字

inf_loop: #伺服器無限迴圈

cs.recvfrom()

/cs.

sendto

() #關閉(接收/傳送)

ss.close

() #關閉伺服器套接字

2)建立udp客戶端(偽**)

cs =

socket

() #建立客戶端套接字

comm_loop: #通訊迴圈

cs.sendto()

/cs.

recvfrom

() #對話(接收/傳送)

cs.close

() #關閉客戶端套接字

3)執行udp伺服器和客戶端

Chapter 02 復合 VS 繼承

復合優先於繼承,繼承是實現 重用的有力手段,並不是所有情況都適用,使用不當會導致軟體變得很脆弱。與方法呼叫不同的是,繼承打破了封裝性。總而言之,組合和繼承,都能實現對類的擴充套件。但是要分具體情況用哪個實現,是has a,還是is a的關係。兩者區別如下表所示 組合 繼承 has a關係 is a關...

Chapter 02 復合 VS 繼承

復合優先於繼承,繼承是實現 重用的有力手段,並不是所有情況都適用,使用不當會導致軟體變得很脆弱。與方法呼叫不同的是,繼承打破了封裝性。總而言之,組合和繼承,都能實現對類的擴充套件。但是要分具體情況用哪個實現,是has a,還是is a的關係。兩者區別如下表所示 組合 繼承 has a關係 is a關...

Chapter02 第四節 函式

函式定義 函式原型 函式呼叫 函式定義即定義乙個函式 形如 double sqrt double x 函式呼叫即呼叫這個函式,形如 double value sqrt x 函式原型即函式宣告,如double sqrt double 編譯系統要求先編譯函式,再呼叫函式。也就是定義要放在函式之前。但是不...