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 編譯系統要求先編譯函式,再呼叫函式。也就是定義要放在函式之前。但是不...